2012-03-09 2 views
0

Я хочу, чтобы оптимизировать запрос, используя оценку короткого замыкания, как показано ниже:оценка короткого замыкания для оптимизации SQL запросов

Запрос 1:

Select emp_id, emp_name 
From emp_table 
Where emp_name = "xyz" 
and emp_id >= 50; 

запрос 2:

Select emp_id, emp_name 
From emp_table 
Where emp_name = "xyz" 
and (emp_id >= 50 or 1 = 0); 

Будет ли дополнение из or 1 = 0 условие (оценка короткого замыкания) в запросе 2 приводит к оптимизации?
Как точно будет работать оценка короткого замыкания в приведенном выше примере?

+1

Связанный, и IMO дубликат: http://stackoverflow.com/questions/789231/is-the-sql-where-clause-short-circuit-оцененный – bernie

ответ

1

это не приведет к оптимизации (а ,, это может в случае, если есть ошибка в ядре базы данных, и это будет обойти ошибку;)

, но я не вещь, этот вопрос не имеет ничего делать с short circuit evaluation - 0 and ?, 1 or ? короткие замыкания оценивается, не 1 = 0, 0 or ?, 1 and ? ни ? and (? or 1 = 0)

плюс двигатель должен удалить or 1 = 0 из вашего запроса во время компиляции (= оптимизировать запрос), но я не знаю, как для проверки полученного байт-кода, поэтому я не уверен в этом ...

Смежные вопросы