Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Оптимизация запроса... [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 переведут.
Вывод - абсолютно пофигу, в каком регистре писать.

Всё ИМХО.


Наверх

Титульная страница Поиск, карта сайта Написать письмо