24.08.2006, 15:23 | #1 |
Гость
|
Влияние WHERE в запросе (SQL) Как объяснить?
Всем привет!
Возник следующий вопрос (MS SQL 2000): делаю запросы типа while select A where A.AA == '111' && (A.BB == 'ddd' || A.BB == 'zzz') || (A.CC < 0) { .. } и while select A where (A.CC < 0) || (A.BB == 'ddd' || A.BB == 'zzz') && A.AA == '111' { .. } В таблице A создан индекс по полю AA. Время работы запросов различается в разы, хотя фактически только произошла смена "слагаемых" в WHERE. Почему? |
|
24.08.2006, 15:37 | #2 |
Гость
|
все объяснение найдено. Каюсь за отнятое время
Последний раз редактировалось lagr221374; 24.08.2006 в 15:39. |
|
24.08.2006, 15:43 | #3 |
NavAx
|
Странно, у меня аналогичные запросы, написаные в QA отработали примерно за однин промежуток времени, планы исполнения у них одинаковы. А какое объяснение у Вас?
|
|
24.08.2006, 15:46 | #4 |
Участник
|
Цитата:
Сообщение от lagr221374
все объяснение найдено. Каюсь за отнятое время
|
|
24.08.2006, 16:03 | #5 |
Гость
|
Цитата:
Сообщение от mazzy
раз уж начали, то расскажите что нарыли.
false && true || true = 1 true && true || false = 0 (бага из SP3) |
|