![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Оптимизация запроса... [MSSQL]
MakNik © (2005-08-31 10:44:00)Обратил внимание, что Enterprise Manager при выполнении запроса расставляет в нем скобки и приводи все служебные слова в верхний регистр. Нпример:
Запрос Select * from Table1 where ID='1'
преобразовывает в SELECT * FROM Table1 WHERE (ID = '1')
Следовательно, вопрос: есть ли смысл сразу ставить скобки и писать все большими буквами? Влияет ли это на скорость разбора запроса?
Fay (2005-08-31 16:23:00) [1]2 MakNik (31.08.05 10:44)
Забей. Не влияет.
Desdechado (2005-08-31 13:15:00) [2]В Оракле, например, при некоторых настройках оптимизатора имеет значение, в каком регистре отправлять запросы.
Сервер может искать в кэше похожие или точно такие запросы, соответственно скорость обработки и сохранность кэша откомпилированных запросов меняется.
Возможно, что-то похожее есть и в MSSQL.
Nikolay M. (2005-08-31 11:49:00) [3]Не надо заниматься ловлей блох. То время, которое ты потратил на форум, уже больше цены вопроса всех селектов, которые ты можешь написать за несколько лет.
Val (2005-08-31 11:20:00) [4]похожий запрос тогда сидит у сервера в кэше.
MakNik (2005-08-31 11:17:00) [5]
> Val © (31.08.05 11:10) [7]
> мы выигрываем, когда оптимально строим запросы. вот от этого
> серверу хорошо.
...это безусловно, но когда похожий запрос выполняется n+1 раз, где n>10000, то даже небольшой выигрыш дает ощутимый результат...
Val (2005-08-31 11:10:00) [6]мы выигрываем, когда оптимально строим запросы. вот от этого серверу хорошо.
MakNik (2005-08-31 11:07:00) [7]... а вот еще один глупый вопрос (исправте меня, если я что не так понимаю): если я правильно понимаю, то разбор строки происходит на сервре. т.о. приложение отправляет по сетке запрос в том види, в котором он был введен, а сервер разбирает и выполняет запрос. так вот, хотелось бы оценить где мы выигрываем: если, допустим, строка со скобками будет разбираться сервером быстрее, то передавая запрос со скобками на каждое условие приходится передавать на 2 символа больше по сетке.
В каком случае мы будем в выиграше: передавать больший запрос, но быстее его обрабатывать либо передавать меньший запрос и дольше его обрабатывать?
Nikolay M. (2005-08-31 11:05:00) [8]
> Плохиш © (31.08.05 11:01) [4]
> Хм, я не понял какое отношение Enterprise Manager имеет
> к Delphi?
А почему ЕМ должен иметь какое-то отношение к дельфям?
> MakNik (31.08.05 10:44)
По сравенению с временем собственно выполнения запроса, говорить о скорости преобразовывания текста просто смешно :)
Плохиш (2005-08-31 11:01:00) [9]Хм, я не понял какое отношение Enterprise Manager имеет к Delphi?
Val (2005-08-31 10:57:00) [10]можно плюнуть на это дело. если возьмете за привычку - хуже от этого не будет. но ожидать прироста производительности не стоит, думаю.
MakNik (2005-08-31 10:55:00) [11]... а в отношении скобок? есть ли смысл ставить каждое условие в скобки?
Ega23 (2005-08-31 10:51:00) [12]При синтаксическом разборе текста запроса один фиг всё в какой-то единый регистр приводится. Лично я предпочитаю верхний, хотя разницы нет. Если ты будешь всё в верхнем регистре писать, то при разборе всё равно в UpperCase переведут.
Вывод - абсолютно пофигу, в каком регистре писать.
Всё ИМХО.