powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Условие is выполняется нереально долго
3 сообщений из 3, страница 1 из 1
Условие is выполняется нереально долго
    #37783068
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Мне нужно выполнить запрос на выборку, в котором есть условие типа
Код: 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
Условие is выполняется нереально долго
    #37783190
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZ,

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

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


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