|
17.10.2008, 08:17 | #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. Кстати, я основательно затестила, использование наиболее подходящих ключей очень помогло, скорость существенно улучшилась, спасибо! |
|
17.10.2008, 11:05 | #2 |
Участник
|
Цитата:
P.S. Кстати, можете глянуть в Clent Monitor что твориться под SQL |
|
20.10.2008, 08:48 | #3 |
Участник
|
Цитата:
По крайней мере Clent Monitor видит только запросы к базе, работу с темп-таблицами он не отражает. |
|
06.11.2008, 16:25 | #4 |
Участник
|
Цитата:
Далее все эти таблицы хранятся в памяти и если её не достаточно, то будет происходить сброс на винт и восстановление. А так как куча фильтров ставится, то я не уверен, что всё хранится в памяти! |
|
06.11.2008, 17:39 | #5 |
Участник
|
Цитата:
Сообщение от RedFox
"Работает такая процедура примерно 0,036 секунды. " - Это с с заполнением этой временной таблицы в памяти или ТОЛЬКО сравнение?
Далее все эти таблицы хранятся в памяти и если её не достаточно, то будет происходить сброс на винт и восстановление. А так как куча фильтров ставится, то я не уверен, что всё хранится в памяти! По теме: Есть видимо некий порог, когда производительнее использовать возможности SQL сервера, нежели работать с черным ящиком, именуемым временные таблицы. Предполагаю используется тот же самый механизм что и для работы с native DB. |
|
07.11.2008, 13:14 | #6 |
Участник
|
Цитата:
А вы хотите сказать, что торможение вызвано работой с винтиком, да? Это по крайней мере понятно будет. Цитата:
Сообщение от rmv
По теме: Есть видимо некий порог, когда производительнее использовать возможности SQL сервера,
нежели работать с черным ящиком, именуемым временные таблицы. Предполагаю используется тот же самый механизм что и для работы с native DB. |
|