|
|
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Привет всем ! У меня вопрос такой: Имеется InterBase 7.1 таблица Log-в ней 1 396 266 строк таблица Shift-в ней 56 937 строк Даю запрос SELECT SUM(LOG.SUMM) FROM LOG INNER JOIN SHIFT ON (LOG.AZS = SHIFT.AZS) AND (LOG.SHIFTNUM = SHIFT.SHIFTNUM) WHERE SHIFT.SHIFTFROM BETWEEN '1.11.2003' and '1.12.2003' Время выполнения примерно 24 сек. Тот же самый запрос на тех же самых данных в Paradox 27 сек. Тот же самый запрос на тех же самых данных в MSSQL 2000 2 сек. Все индексы идентичны. В чём причина такой тормознутости в InterBase ? По идее запросы в InterBase должны быстрее выполнятся чем в Paradox. :-((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 12:27 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
индексы и план в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 12:42 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Индексы Log LOG_PRIMARY PRIMARY KEY (DATETIME, AZS, SERIAL, SUMM, TRK); INDEX AZSLOG ON LOG (AZS); INDEX SHIFTNUMLOG ON LOG (SHIFTNUM); Индексы Shift SHIFT_PRIMARY PRIMARY KEY (AZS, SHIFTNUM); INDEX SHIFTFROMSHIFT ON SHIFT (SHIFTFROM); Plan PLAN JOIN (SHIFT INDEX (SHIFTFROMSHIFT),LOG INDEX (AZSLOG,SHIFTNUMLOG)) Adapted Plan PLAN JOIN (SHIFT INDEX (SHIFTFROMSHIFT),LOG INDEX (AZSLOG,SHIFTNUMLOG)) ------ Performance info ------ Prepare time = 5ms Execute time = 24s 9ms Avg fetch time = 24 009,00 ms Current memory = 19 238 840 Max memory = 19 241 912 Memory buffers = 4 096 Reads from disk to cache = 32 970 Writes from cache to disk = 0 Fetches from cache = 397 575 Конфигурация сервера: P4-2000, RAM-1Гб, RAID0, Widows 2000 Proffesional Винт при этом не шуршит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 13:10 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
попробуй на LOG сделать составной ключ (AZS, SHIFTNUM) аналогичный первичному ключу таблицы Shift ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 13:40 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Если вместо INDEX AZSLOG ON LOG (AZS); INDEX SHIFTNUMLOG ON LOG (SHIFTNUM); один индекс INDEX AZSSHIFTNUMLOG ON LOG (AZS,SHIFTNUM); то это должно существенно ускорить...данный запрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 13:45 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
люди дело говорят :) запрос в разы ускорится должен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 13:54 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
если индекс создавать влом, попробуй такой план: PLAN sort (SHIFT INDEX (SHIFTFROMSHIFT),LOG natural) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 14:16 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Спасибо блин большое !!! Привожу статистику: Plan PLAN JOIN (SHIFT INDEX (SHIFTFROMSHIFT),LOG INDEX (LOG_IDX1)) Adapted Plan PLAN JOIN (SHIFT INDEX (SHIFTFROMSHIFT),LOG INDEX (LOG_IDX1)) ------ Performance info ------ Prepare time = 3ms Execute time = 884ms Avg fetch time = 884,00 ms Current memory = 17 906 620 Max memory = 18 244 762 Memory buffers = 4 096 Reads from disk to cache = 0 Writes from cache to disk = 0 Fetches from cache = 0 Но MS SQL Server всё равно работает быстрее аж в 8 раз !!! Получается что он работает быстрее ? ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 14:18 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Да, естественно, он работает быстрее. Правда, можешь попробовать Firebird 1.5 или Yaffil, думаю, разница будет гораздо меньше (если, конечно, базу отресторишь под них). И, гарантированно, Firebird 1.5 выигрывает у MSSQL2000 по соотношению цена/производительность ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 14:30 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Ребята ... запомните раз и навсегда ... скорость MSSQL превосходит IB/FB в НЕСКОЛЬКО раз. Было проверено (правда не мной), и не один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2004, 19:42 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Но MS SQL Server всё равно работает быстрее аж в 8 раз !!! Получается что он работает быстрее ? ... Что-то я не пойму! По вышеприведенным данным: "Время выполнения примерно 24 сек. Тот же самый запрос на тех же самых данных в MSSQL 2000 2 сек." Откуда взялось 8 ? Было 12, если конечно я математику не забыл, 24/12=2? при: #[504534] Avg fetch time = 24 009,00 ms Execute time = 24s 9ms после оптимизации стало: #[504707] Execute time = 884ms Avg fetch time = 884,00 ms Я так понимаю 884ms < 2 sec, и как раз IB7.1 выигрывает в 2,5 раза? Или я не прав? И где статистика по MSSQL? ------------------------ С уважением, Denis Uskov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 09:44 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Denis UskovЯ так понимаю 884ms < 2 sec Разумеется ты прав. Я, так, чуть со стула не слетел, когда прочитал эту писанину: >> Но MS SQL Server всё равно работает быстрее аж в 8 раз !!! Понедельник наверное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 11:32 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Скорее всего, подразумевалось полное время, включая fetch всех записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 11:35 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Даже если полное (тупо всё просуммировать) 3ms + 884ms + 884ms = 1771ms = 1.77 sec < 2 sec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 12:02 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Avg fetch time! Это значит, столько уходит на каждую строку. Надо умножить на кол-во строк. Время, кстати, значительное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 12:17 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
а что, sum() уже много строк возвращать стал?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 12:20 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
0.8 sec fetch каждой строки????????? Вы с дуба не рухнули? Это если весь запрос выполнен за 0.8sec, то fetch 100 строк, я должен ждать 80 sec. БРЕХНЯ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 12:24 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Запрос-то я уже и забыл Тогда время нормальное, действительно меньше 2 сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 12:28 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Это вообще какой-то интересный сюжет! Прочитайте внимательно 1 пост! Время выполнения примерно 24 сек. Тот же самый запрос на тех же самых данных в Paradox 27 сек. ... По идее запросы в InterBase должны быстрее выполнятся чем в Paradox. :-((( Последняя фраза подразумевает, что опытным путем было достугнуто опровержение, что IB быстрее Paradox. Но по секундам даже первого теста(без изменений индекса) IB работает быстрее Paradox( 24 сек < 27 сек однозначно !). Или у Автора какие-то другие единицы измерения??? И кстати, где Автор? ------------------------ С уважением, Denis Uskov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 13:01 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Да ладно придираться, он наверно имел ввиду МНОГО быстрее. 24 и 27 это почти одинаково чудовищно долго (±). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 13:06 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
кароче. вывода такой. ибэйз круче чем мсэскуэль :-) чего я и так всегда знал :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 13:08 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
ну вот, выводы пошли.... :) ты еще на MySQL этот запрос выполни :) и результаты приведи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 13:09 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Согласен, перегнул чуток. Но вот только Нам это понятно что Автор имел ввиду, а вот придет новичок, и отложится у него в голове такая фраза: "По идее запросы в InterBase должны быстрее выполнятся чем в Paradox. :-(((" , и будет он(новичок) фразу эту везде пихать! А потом доказывай что ты не верблюд! Может я и погорячился, но вот такие ... высссссказывания уже достали :( Еще раз СОРРИ ВСЕМ. ------------------------ С уважением, Denis Uskov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 13:12 |
|
||
|
Скорость выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Привожу статистику MS SQL Time Statistics Cumulative client processing time Value: 1 Average: 1,33333 Cumulative wait time on server replies Value: 103 Average: 7,82986e+006 А у Interbase Execute time = 884ms Вот Вам и примерно 8 раз. Я конечно понимаю, что это частный пример, но он на лицо. Ну никак Interbase не хочет работать быстрее :-(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 17:21 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32388168&tid=1579332]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 421ms |

| 0 / 0 |
