Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Условие is выполняется нереально долго / 3 сообщений из 3, страница 1 из 1
05.05.2012, 06:18
    #37783068
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие is выполняется нереально долго
Здравствуйте. Мне нужно выполнить запрос на выборку, в котором есть условие типа
Код: sql
1.
2.
3.
4.
5.
WHERE
t1.field1 = t2.field1 and
t1.field2 = t2.field2 and
t1.field3 = t2.field3 and
t1.field4 = t2.field4


Такой запрос выполняется примерно секунду
Проблема в том, что значения этих полей могут быть равны NULL, соответственно эти условия не проходят, а по идее должны.
Если = заменить на IS, то запрос выполняется около 40 секунд, точно так же как условие типа
Код: sql
1.
2.
3.
4.
5.
WHERE
 ((t1.field1 = t2.field1) or (t1.field1 is null and t2.field1 is null)) and
 ((t1.field2 = t2.field2) or (t1.field2 is null and t2.field2 is null)) and 
 ((t1.field3 = t2.field3) or (t1.field3 is null and t2.field3 is null)) and 
 ((t1.field4 = t2.field4) or (t1.field4 is null and t2.field4 is null))


Это очень долго. Как грамотно построить условие?
...
Рейтинг: 0 / 0
05.05.2012, 09:49
    #37783190
RXL
RXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие is выполняется нереально долго
NekZ,

Запрос не годится. Объясните смысл выражения "t1.field1 is null and t2.field1 is null". Еще лучше: объясните суть задачи.
...
Рейтинг: 0 / 0
08.05.2012, 16:37
    #37786173
metos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие is выполняется нереально долго
NekZ

Эти поля хоть проиндексированы?
Вы знаете, что NULL-значения не индексируются?
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Условие is выполняется нереально долго / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]