|
![]() |
#1 |
Участник
|
Вообще пишу под 4.0 SP3, но возможно код будет использовано и под другими версиями (как ниже, так и выше). БД под SQL Server.
Цитата:
Сообщение от AlexB
1. CASE, мо-моему, не только читабельнее, но и чуть-чуть быстрее чем IF..ELSE..IF
2. SETRANGE, по-моему, тоже быстрее чем SETFILTER, поэтому конкретно в этом случае можно обе даты фильтровать не с SETFILTER Относительно FINDFIRST, FINDLAST и т.д. Не хотелось их использовать, чтобы безболезненно код переносить под другие версии. А вообще, разве все это имеет значение для темп-таблиц? Для реальных-то понятно, что быстрее, там запрос на сервер отправляется, а тут же локально все. Цитата:
Сообщение от anatol33
приведу выдержку хелпа по FINDFIRST
Comment This function should be used instead of FIND('-') when you only need the first record. You should only use this function when you explicitly want to find the first record in a table/set. Do not use this function in combination with REPEAT .. UNTIL. Кстати, я основательно затестила, использование наиболее подходящих ключей очень помогло, скорость существенно улучшилась, спасибо! |
|
![]() |
#2 |
Участник
|
Цитата:
P.S. Кстати, можете глянуть в Clent Monitor что твориться под SQL |
|
![]() |
#3 |
Участник
|
Цитата:
По крайней мере Clent Monitor видит только запросы к базе, работу с темп-таблицами он не отражает. |
|
![]() |
#4 |
Участник
|
Цитата:
Далее все эти таблицы хранятся в памяти и если её не достаточно, то будет происходить сброс на винт и восстановление. А так как куча фильтров ставится, то я не уверен, что всё хранится в памяти! |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от RedFox
![]() "Работает такая процедура примерно 0,036 секунды. " - Это с с заполнением этой временной таблицы в памяти или ТОЛЬКО сравнение?
Далее все эти таблицы хранятся в памяти и если её не достаточно, то будет происходить сброс на винт и восстановление. А так как куча фильтров ставится, то я не уверен, что всё хранится в памяти! ![]() По теме: Есть видимо некий порог, когда производительнее использовать возможности SQL сервера, нежели работать с черным ящиком, именуемым временные таблицы. Предполагаю используется тот же самый механизм что и для работы с native DB. |
|
![]() |
#6 |
Участник
|
Цитата:
А вы хотите сказать, что торможение вызвано работой с винтиком, да? Это по крайней мере понятно будет. Цитата:
Сообщение от rmv
По теме: Есть видимо некий порог, когда производительнее использовать возможности SQL сервера,
нежели работать с черным ящиком, именуемым временные таблицы. Предполагаю используется тот же самый механизм что и для работы с native DB. |
|