powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость выполнения запроса
25 сообщений из 26, страница 1 из 2
Скорость выполнения запроса
    #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
Скорость выполнения запроса
    #32386020
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
индексы и план в студию
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #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
Скорость выполнения запроса
    #32386144
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй на LOG сделать составной ключ (AZS, SHIFTNUM)
аналогичный первичному ключу таблицы Shift
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32386150
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вместо
INDEX AZSLOG ON LOG (AZS);
INDEX SHIFTNUMLOG ON LOG (SHIFTNUM);
один индекс
INDEX AZSSHIFTNUMLOG ON LOG (AZS,SHIFTNUM);
то это должно существенно ускорить...данный запрос...
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32386171
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
люди дело говорят :)
запрос в разы ускорится должен
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32386211
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если индекс создавать влом, попробуй такой план:
PLAN sort (SHIFT INDEX (SHIFTFROMSHIFT),LOG natural)
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #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
Скорость выполнения запроса
    #32386245
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, естественно, он работает быстрее. Правда, можешь попробовать Firebird 1.5 или Yaffil, думаю, разница будет гораздо меньше (если, конечно, базу отресторишь под них). И, гарантированно, Firebird 1.5 выигрывает у MSSQL2000 по соотношению цена/производительность ;)
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387013
KeepeR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята ... запомните раз и навсегда ... скорость MSSQL превосходит IB/FB в НЕСКОЛЬКО раз. Было проверено (правда не мной), и не один раз.
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #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
Скорость выполнения запроса
    #32387487
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis UskovЯ так понимаю 884ms < 2 sec
Разумеется ты прав.
Я, так, чуть со стула не слетел, когда прочитал эту писанину:
>> Но MS SQL Server всё равно работает быстрее аж в 8 раз !!!
Понедельник наверное...
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387493
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего, подразумевалось полное время, включая fetch всех записей
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387538
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже если полное (тупо всё просуммировать) 3ms + 884ms + 884ms = 1771ms = 1.77 sec < 2 sec
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387565
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Avg fetch time! Это значит, столько уходит на каждую строку. Надо умножить на кол-во строк. Время, кстати, значительное
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387570
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что, sum() уже много строк возвращать стал??
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387580
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0.8 sec fetch каждой строки????????? Вы с дуба не рухнули?
Это если весь запрос выполнен за 0.8sec, то fetch 100 строк, я должен ждать 80 sec. БРЕХНЯ!
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387586
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос-то я уже и забыл Тогда время нормальное, действительно меньше 2 сек
...
Рейтинг: 0 / 0
Скорость выполнения запроса
    #32387648
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вообще какой-то интересный сюжет!

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

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

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

...

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

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


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