|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Здравствуйте, использую БД firebird 2.5, Delphi xe2, fibplus + ehlib Таблица SALE Код: sql 1. 2. 3. 4. 5. 6. 7.
Сейчас в этой таблице около 500 тыс записей и возникла надобность узнавать количество конкретного товара на дату документа. Я составил запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Запрос выполняется ОЧЕНЬ долго, не могли бы Вы дать рекомендации по ускорению этого запроса. P.S. Индексы в таблице SALE по полям : TID,DOCTYPEID, DOCID, DDOC, составной индекс TID,DDOC ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:21 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 12:30 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Насколько я понял, там обсуждается общее текущее количество товара и при том, как я понял, могу и ошибаться, при многопользовательском режиме это не катит, а меня интересует количество товара на конкретную дату документа. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:06 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakanдать рекомендации по ускорению этого запроса.применять хранимые агрегаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:13 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakanмогу и ошибаться, при многопользовательском режиме это не катит, а меня интересует количество товара на конкретную дату документа.Как раз при многопольз. режиме только та схема и катит . Вам следует только добавить в сальдовую таблицу поле с датой (ну, или строковое в виде даты + значения часов от полуночи) и агрегировать по коду товара и значению "якорного" момента времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:19 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakan, Про хранимые агрегаты уже сказали. В тройке можно ещё воспользоваться вот этим запросом, который будет намного эффективнее Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:23 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Симонов ДенисВ тройке можно ещё воспользоваться вот этим запросом, который будет намного эффективнееТерзают смутные сомнения как бэ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
ЗЫ. Никогда не понимал, что мешало реализовать оконные ф-ции так, чтобы они юзали индекс при его наличии... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:34 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
ТаблоидВам следует только добавить в сальдовую таблицу поле с датой (ну, или строковое в виде даты + значения часов от полуночи) и агрегировать по коду товара и значению "якорного" момента времени. А можно подробнее, для тех, кто на бронепоезде? Симонов Денис В тройке можно ещё воспользоваться вот этим запросом, который будет намного эффективнее У меня менеджер не знает слова OVER и ругается на открытую скобку в выражении OVER(ORDER BY S.DDOC) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:40 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakan, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 20:50 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Таблоид, 1. конкретно в этом запросе использование индекса только бы навредило, поскольку всё равно надо выбрать все записи с TID = 1005 2. я намеренно применил asc сортировку в OVER. Твой запрос даст совсем не то Запрос с использованием оконной функции будет эффективнее в N раз, поскольку выборка из SALE делается только один раз. Естественно при условии что достаточно памяти в TempCacheLimit ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 21:20 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Симонов ДенисЗапрос с использованием оконной функции будет эффективнее в N разУ тебя есть конкретные результаты измерений *с* оконной ф-цией =vs= хранимые агрегаты ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 21:37 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Таблоид, хранимые агрегаты конечно же уделают любой запрос с агрегатами и оконными функциями. Речь шла про запрос автора vs запрос с использованием оконных функций ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2015, 21:41 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakanпри многопользовательском режиме это не катит при многопользовательском режиме не катит заниматься онанизмом (извините за прямоту), то есть постоянно пересчитывать одни и те же данные, причем объем которых увеличивается регулярно. Хранимые агрегаты придуманы именно для этого. tarakanУ меня менеджер не знает слова OVER кто такой "менеджер", и какое ему дело до синтаксиса ФБ 3? Он не может просто отправить запрос на сервер? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2015, 00:46 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
kdvзаниматься онанизмом (извините за прямоту),... Хранимые агрегаты придуманы именно для этого. Спасибо за прямоту, понял, был не прав сейчас читаю, разбираюсь, пока еще недостаточно образован для использования хранимых агрегатов, короче учу мат часть. Отдельное спасибо Таблоид kdvкто такой "менеджер", и какое ему дело до синтаксиса ФБ 3? Он не может просто отправить запрос на сервер? SQL Manager for InterBase & Firebird, я писал в первом посте(у), что использую ФБ 2,5; так что до over'a мне еще 0,5 ФБ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2015, 08:28 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
SQL Manager for InterBase & Firebird, я писал в первом посте(у), что использую ФБ 2,5; так что до over'a мне еще 0,5 ФБ :) Выбрось каку и скачай нормальный IBExpert ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2015, 09:48 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Таблоидtarakan, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Скажите Таблоид , можно ли как то связаться с Вами лично, можете мне написать на почту admin@strbit.ru или в skype : tarakan1983 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2015, 12:24 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakan, р 5 1 9 4 4 6 собацька у а n d е х . р у (только зачем вы процитировали портянку перед своим вопросом ? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2015, 22:05 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
Таблоидtarakan, (только зачем вы процитировали портянку перед своим вопросом ? :)) Нечаянно. Отписался на почту. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2015, 22:30 |
|
Помогите ускорить выполнение запроса Firebird
|
|||
---|---|---|---|
#18+
tarakan, DDL всех индексов таблицы в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2015, 10:03 |
|
|
start [/forum/topic.php?fid=40&msg=39079049&tid=1562564]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 170ms |
0 / 0 |