|
|
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
Стоит FB1.5Release + IBExpert В настройках по умолчанию установлен короткий AND #CompleteBooleanEvaluation = 0 Есть запрос SELECT Id FROM Goods WHERE (RDB$Modified = 1) AND (Gen_ID(GEN,1)>0) Устанавливаю значения генератора в 0 после выполнения запроса GEN установился в 22000, те выполняась проверка обеих частей. Создаю индекс на поле RDB$Modified, снова выполняю запрос (генератор устанавливаю в 0), и после выполнения получаю значение генератора 122 Скажите мне что нибудь по этому поводу:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:28 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
Я бы сказал, что в указанной таблице 22000 записей, из них со значением указанного поля, равным 1, - 122. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:37 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
А объяснить ты можешь почему в первом случае 22000, ведь AND должен игнорировать приращение генератора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 12:40 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
Тебе кто-нибудь обещал, что короткий AND вычисляется слева направо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 13:22 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
Вот блин, поменял местами условие и все заработало как надо:) теперь придется во всех запросаж ж.....у на голову менять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 15:47 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
остается вопрос, как правильно ставить условия. Выбрать строки у которых если :paramId=0 то выбрать все иначе :ParamId=ParamId SELECT * FROM t1 WHERE (:ParamId = 0) OR (:ParamId = ParamId) SELECT * FROM t1 WHERE (:ParamId = 0) OR ((:ParamId <> 0) AND (:ParamId = ParamId)) SELECT * FROM t1 WHERE (:ParamId = ParamId) OR (:ParamId = 0) ............................................ А что что-то я немного уже запутался, или лучше дайте ссылку на какую-нибудь доку по этому поводу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 15:56 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
автортеперь придется во всех запросаж ж.....у на голову менять И завтра это перестанет работать. Ибо порядок вычисления предикатов выбирает сервер. Это часть процесса оптимизации запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 16:20 |
|
||
|
Длинный AND
|
|||
|---|---|---|---|
|
#18+
пока второе и используется, но раздражает ((:ParamId <> 0) это тоже самое (но не для IB) что begin if (i=0) then //////////// else if(i<>0) then ///////////////// end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2004, 17:06 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=480&tid=1578966]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 324ms |

| 0 / 0 |
