
Производительность при группировке
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
заглянуть firebird.conf пробовал?Dmitry74 писал(а):Ivan_Pisarevsky писал(а):и сделал запрос очень простой что там даже оптимизировать не чего
А может банально кеш пэджес накрутить, чтоб ФБ диск не дергал?
Мониторинг дисковой активности что говорит?
Какая очередь к диску?
Ну ты просто пальцем в небо с первого раза попал...Dmitry74 писал(а):Диск крутится будь здоров!
Скоко в иопсах?
СКоко средняя длина очереди?
Тебе не зря про статистику говорят, что в ибэксперте...
Вот мне и стало интересно... воспроизводимый пример состряпать можешь?Dmitry74 писал(а):Ты пишешь у тебя сто тысяч записей а у меня базы по 2 миллиона а бывают и больше.
например одна из таблиц
запрос
select count (*) from st_ved_spec
результат
344045
статистика
Plan
PLAN (ST_VED_SPEC NATURAL)
Adapted Plan
PLAN (ST_VED_SPEC NATURAL)
------ Performance info ------
Prepare time = 0ms
Execute time = 1s 863ms
Avg fetch time = 1 863,00 ms
Current memory = 2 653 880
Max memory = 2 788 796
Memory buffers = 10 000
Reads from disk to cache = 2 690
Writes from cache to disk = 6
Fetches from cache = 693 553
пришли мне свой Ibexpert по адресу ADN@DSM.RUIvan_Pisarevsky писал(а):и сделал запрос очень простой что там даже оптимизировать не чего
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Это игровая копия базы на моем рабочем дектопе, у него один ide винт и один процессор селерон 1300 мегагерцов.Merlin писал(а):А теперь попробуй с группировкой по паре-тройке полей. Если "результат" умножить на 10, то можно действительно нехило отдохнуть.Ivan_Pisarevsky писал(а): запрос
select count (*) from st_ved_spec
результат
344045
Execute time = 1s 863ms


>пришли мне свой Ibexpert
Прислать-то не жалко(лови примерно 5 мег), только он у меня ужо наверняка устаревший,от конца прошлого года и скачан с сайта первоисточника www.ibexpert.com
Иван спасибо за твой эксперт
он мне выдал статистику
План
PLAN SORT ((MAIN NATURAL))
Адаптированный план
PLAN SORT ((MAIN NATURAL))
------ Performance info ------
Prepare time = 0ms
Execute time = 1m 18s 735ms
Avg fetch time = 4 920,94 ms
Current memory = 698 644
Max memory = 864 012
Memory buffers = 2 048
Reads from disk to cache = 597 548
Writes from cache to disk = 0
Fetches from cache = 5 988 721
PS Всётаки у меня была урезанная копия
он мне выдал статистику
План
PLAN SORT ((MAIN NATURAL))
Адаптированный план
PLAN SORT ((MAIN NATURAL))
------ Performance info ------
Prepare time = 0ms
Execute time = 1m 18s 735ms
Avg fetch time = 4 920,94 ms
Current memory = 698 644
Max memory = 864 012
Memory buffers = 2 048
Reads from disk to cache = 597 548
Writes from cache to disk = 0
Fetches from cache = 5 988 721
PS Всётаки у меня была урезанная копия
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Прикола ради попробавал запустить такой же запрос, по той же таблице, на том же сервере, только дважды. Результат второго исполнения слегонца получше, диск уже не лимитируетMerlin писал(а):А теперь попробуй с группировкой по паре-тройке полей. Если "результат" умножить на 10, то можно действительно нехило отдохнуть.
Код: Выделить всё
Plan
PLAN (ST_VED_SPEC NATURAL)
Adapted Plan
PLAN (ST_VED_SPEC NATURAL)
------ Performance info ------
Prepare time = 0ms
Execute time = 561ms
Avg fetch time = 561,00 ms
Current memory = 3 605 724
Max memory = 4 089 876
Memory buffers = 10 000
Reads from disk to cache = 0 <- !!! И сразу видно в 3 с лишним раза быстрее.
Writes from cache to disk = 6
Fetches from cache = 693 547

-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Вчера провёл эксперемент
Установил движок
MSDE (урезанная копия SQL server)
Создал базу перекачал все данные из FireBird в MSDE
Выполнил запрос с группировкой в этих двух базах (кол записей в таблице ,по которой делался запрос, 2 500 000 записей )
(прога написана на Delphi 7
для MSDE использовал ADO
для FireBird использовал компаненты с закладки InterBase)
в MSDE 58 сек
в FireBird 2 мин 01 сек
Что подкрутить чтоб FireBird выиграл по времени?
Установил движок
MSDE (урезанная копия SQL server)
Создал базу перекачал все данные из FireBird в MSDE
Выполнил запрос с группировкой в этих двух базах (кол записей в таблице ,по которой делался запрос, 2 500 000 записей )
(прога написана на Delphi 7
для MSDE использовал ADO
для FireBird использовал компаненты с закладки InterBase)
в MSDE 58 сек
в FireBird 2 мин 01 сек
Что подкрутить чтоб FireBird выиграл по времени?
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Лучше не стало
План
PLAN SORT ((MAIN NATURAL))
Адаптированный план
PLAN SORT ((MAIN NATURAL))
------ Performance info ------
Prepare time = 0ms
Execute time = 1m 14s 954ms
Avg fetch time = 4 684,63 ms
Current memory = 2 481 580
Max memory = 2 646 976
Memory buffers = 10 000
Reads from disk to cache = 597 548
Writes from cache to disk = 0
Fetches from cache = 5 988 721
Если ещё какие нибудь предложения
План
PLAN SORT ((MAIN NATURAL))
Адаптированный план
PLAN SORT ((MAIN NATURAL))
------ Performance info ------
Prepare time = 0ms
Execute time = 1m 14s 954ms
Avg fetch time = 4 684,63 ms
Current memory = 2 481 580
Max memory = 2 646 976
Memory buffers = 10 000
Reads from disk to cache = 597 548
Writes from cache to disk = 0
Fetches from cache = 5 988 721
Если ещё какие нибудь предложения
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05