Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса / 25 сообщений из 26, страница 1 из 2
23.01.2004, 12:27
    #32385985
ОлегМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Привет всем !
У меня вопрос такой:

Имеется 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. :-(((
...
Рейтинг: 0 / 0
23.01.2004, 12:42
    #32386020
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
индексы и план в студию
...
Рейтинг: 0 / 0
23.01.2004, 13:10
    #32386088
ОлегМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Индексы 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
Винт при этом не шуршит...
...
Рейтинг: 0 / 0
23.01.2004, 13:40
    #32386144
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
попробуй на LOG сделать составной ключ (AZS, SHIFTNUM)
аналогичный первичному ключу таблицы Shift
...
Рейтинг: 0 / 0
23.01.2004, 13:45
    #32386150
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Если вместо
INDEX AZSLOG ON LOG (AZS);
INDEX SHIFTNUMLOG ON LOG (SHIFTNUM);
один индекс
INDEX AZSSHIFTNUMLOG ON LOG (AZS,SHIFTNUM);
то это должно существенно ускорить...данный запрос...
...
Рейтинг: 0 / 0
23.01.2004, 13:54
    #32386171
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
люди дело говорят :)
запрос в разы ускорится должен
...
Рейтинг: 0 / 0
23.01.2004, 14:16
    #32386211
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
если индекс создавать влом, попробуй такой план:
PLAN sort (SHIFT INDEX (SHIFTFROMSHIFT),LOG natural)
...
Рейтинг: 0 / 0
23.01.2004, 14:18
    #32386218
ОлегМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Спасибо блин большое !!!
Привожу статистику:
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 раз !!!
Получается что он работает быстрее ? ...
...
Рейтинг: 0 / 0
23.01.2004, 14:30
    #32386245
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Да, естественно, он работает быстрее. Правда, можешь попробовать Firebird 1.5 или Yaffil, думаю, разница будет гораздо меньше (если, конечно, базу отресторишь под них). И, гарантированно, Firebird 1.5 выигрывает у MSSQL2000 по соотношению цена/производительность ;)
...
Рейтинг: 0 / 0
24.01.2004, 19:42
    #32387013
KeepeR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Ребята ... запомните раз и навсегда ... скорость MSSQL превосходит IB/FB в НЕСКОЛЬКО раз. Было проверено (правда не мной), и не один раз.
...
Рейтинг: 0 / 0
26.01.2004, 09:44
    #32387361
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Но 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
...
Рейтинг: 0 / 0
26.01.2004, 11:32
    #32387487
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Denis UskovЯ так понимаю 884ms < 2 sec
Разумеется ты прав.
Я, так, чуть со стула не слетел, когда прочитал эту писанину:
>> Но MS SQL Server всё равно работает быстрее аж в 8 раз !!!
Понедельник наверное...
...
Рейтинг: 0 / 0
26.01.2004, 11:35
    #32387493
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Скорее всего, подразумевалось полное время, включая fetch всех записей
...
Рейтинг: 0 / 0
26.01.2004, 12:02
    #32387538
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Даже если полное (тупо всё просуммировать) 3ms + 884ms + 884ms = 1771ms = 1.77 sec < 2 sec
...
Рейтинг: 0 / 0
26.01.2004, 12:17
    #32387565
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Avg fetch time! Это значит, столько уходит на каждую строку. Надо умножить на кол-во строк. Время, кстати, значительное
...
Рейтинг: 0 / 0
26.01.2004, 12:20
    #32387570
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
а что, sum() уже много строк возвращать стал??
...
Рейтинг: 0 / 0
26.01.2004, 12:24
    #32387580
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
0.8 sec fetch каждой строки????????? Вы с дуба не рухнули?
Это если весь запрос выполнен за 0.8sec, то fetch 100 строк, я должен ждать 80 sec. БРЕХНЯ!
...
Рейтинг: 0 / 0
26.01.2004, 12:28
    #32387586
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Запрос-то я уже и забыл Тогда время нормальное, действительно меньше 2 сек
...
Рейтинг: 0 / 0
26.01.2004, 13:01
    #32387648
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Это вообще какой-то интересный сюжет!

Прочитайте внимательно 1 пост!

Время выполнения примерно 24 сек.

Тот же самый запрос на тех же самых данных в Paradox 27 сек.

...

По идее запросы в InterBase должны быстрее выполнятся чем в Paradox. :-(((

Последняя фраза подразумевает, что опытным путем было достугнуто опровержение, что IB быстрее Paradox. Но по секундам даже первого теста(без изменений индекса) IB работает быстрее Paradox( 24 сек < 27 сек однозначно !). Или у Автора какие-то другие единицы измерения???
И кстати, где Автор?
------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
26.01.2004, 13:06
    #32387663
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Да ладно придираться, он наверно имел ввиду МНОГО быстрее. 24 и 27 это почти одинаково чудовищно долго (±).
...
Рейтинг: 0 / 0
26.01.2004, 13:08
    #32387667
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
кароче.
вывода такой.
ибэйз круче чем мсэскуэль :-)
чего я и так всегда знал :-)
...
Рейтинг: 0 / 0
26.01.2004, 13:09
    #32387669
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
ну вот, выводы пошли.... :)
ты еще на MySQL этот запрос выполни :)
и результаты приведи
...
Рейтинг: 0 / 0
26.01.2004, 13:12
    #32387672
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Согласен, перегнул чуток. Но вот только Нам это понятно что Автор имел ввиду, а вот придет новичок, и отложится у него в голове такая фраза: "По идее запросы в InterBase должны быстрее выполнятся чем в Paradox. :-(((" , и будет он(новичок) фразу эту везде пихать! А потом доказывай что ты не верблюд!
Может я и погорячился, но вот такие ... высссссказывания уже достали :(
Еще раз СОРРИ ВСЕМ.
------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
26.01.2004, 17:21
    #32388159
ОлегМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Привожу статистику 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 не хочет работать быстрее :-((
...
Рейтинг: 0 / 0
26.01.2004, 17:25
    #32388168
ОлегМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скорость выполнения запроса
Да, забыл добавить, что время выполнени 2 сек. на MS SQL было на неиндексированных таблицах !!! После индексации, идентичной InterBase, запрос выполняется за 103 ms.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]