Оптимизация запроса

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 23 сен 2006, 14:54

ну вот. то, о чем я говорил по телефону. основная проблема - перебор таблицы mails.
Если есть возможность, то надо столбец MAILS.FIRMS выносить в справочник.

ZiBiT
Сообщения: 35
Зарегистрирован: 28 мар 2006, 11:06

Сообщение ZiBiT » 23 сен 2006, 23:21

Перенести поле firms в справочник не возможно т.к. одна и тажа компания может быть заведена по разному
базу доставки присылает заказчик

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 24 сен 2006, 00:46

ну раз он ее ПРИСЫЛАЕТ, то не надо заливать ее абсолютно идентично в БД, чтобы иметь вышеописанный гемор.
Например, решение такое - при заливке имя фирмы ищется в справочнике. Нет - заводится. а в mails ставится ссылка туда. Все одно проще - если вдруг потребуется сгрести несколько одинаковых названий в одно, то всего и делов-то, обновить fk с одного значения на другое, а потом лишнюю фирму в справочнике убить.

p.s. это ж... я прямо не знаю. чего в базе по денормализованным данным отчеты-то делать?

ZiBiT
Сообщения: 35
Зарегистрирован: 28 мар 2006, 11:06

Сообщение ZiBiT » 24 сен 2006, 16:46

Еслиб быловсе так просто искать компанию в спавочнике когда база 5000 адресов причем компания может быть написана фиг знает скока раз по разному вручную забивать это не ктоне будет
у нас адреса(3000-4000) по справочнику определяются, не определяются в среднем 10%
в москве название улиц практически не меняются а если с компаниями то тут их могут буть миллионы
Ладно в понедельник попробую обратно поставить trial и включить гипертрейдинг раз у всех работало практически нормально на до попробывать вернуть все обратно(если скопировать процессорн. лицензию и после триала поставить обратно нужно будет её обратно регистрировать?) если поможет придется покупать доп. процессорную лицензию
:) Мож всетаки гиппетрейдинг повышает производительность хоть на какие-то 20%

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 24 сен 2006, 17:25

Еслиб быловсе так просто искать компанию в спавочнике когда база 5000 адресов причем компания может быть написана фиг знает скока раз по разному вручную забивать это не ктоне будет
5000 - это не 800000. Разница есть? При чем тут вручную?

Адреса в справочнике - тогда почему фирмы не в справочнике?
Кого в данном случае вообще интересует качество данных в этом справочнике?
Я говорю о разнице - искать LIKE '%bla-bla%' в 800 тысячах записей, или в 5000 записей.
Ладно в понедельник попробую обратно поставить trial и включить гипертрейдинг раз у всех работало практически нормально на до попробывать вернуть все обратно(если скопировать
рекомендую в таком случае переставить Windows. 5 раз, не меньше.
"работало нормально" - не верю. триал от дистрибутива сервера отличается только наличием документации, я об этом уже говорил.

Про процессорную - откуда у вас процессорная? И какая еще процессорная лицензия, если на сервере 1 процессор с включенным гипертредингом? Вы вот это - http://www.ibase.ru/devinfo.ht.htm - читали?

Почему вы считаете нормальным отчеты по денормализованным данным? Почему обработка 800 тысяч денормализованных данных считается нормальной, при этом каким то образом "раньше она работала лучше"?
Мож всетаки гиппетрейдинг повышает производительность хоть на какие-то 20%
нет. Прежде чем теоретизировать предлагаю ознакомиться с информацией о hyperthreading хотя бы на www.ixbt.com

ZiBiT
Сообщения: 35
Зарегистрирован: 28 мар 2006, 11:06

Сообщение ZiBiT » 24 сен 2006, 18:32

"работало нормально" - не верю. триал от дистрибутива сервера отличается только наличием документации, я об этом уже говорил.
с триалом можно работать со сколько угодно процессорными системами
у нас стоял триал и был включен гиппертрейдинг получается у меня как бы стояло два виртуальных процессора
у меня стоит серверная лицензия и это не позволяет работать с гиппертрейдингом потому что нет Interbase 7 Per Processor License
и может работатьтолько с однопроцессорными системами

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 24 сен 2006, 21:15

я уже человеку советовал включить в конфиге CPU_AFFINITY.
кроме того, hyperthreading не обеспечивает никакого "прироста". это один процессор (а не два или двухъядерный процессор) который прикидывается двумя.

если бы было действительно ДВА процессора или один двухъядерный - тогда да, если не хватает производительности, то можно купить процессорную лицензию.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 25 сен 2006, 10:41

Если не хочешь оптимизировать структуру БД, а это делать надо, то оптимизируй железяку, у тебя на один запрос десятки тысяч чтений страниц с диска, что говорит перфмон насчет очереди к диску в момент исполнения этого запроса? Я так подозреваю, что бедняга загружен по самые помидоры...

Ответить