
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.03.2014, 08:54:09
|
|||
|---|---|---|---|
|
|||
Быстрое сравнение строк с учётом null |
|||
|
#18+
Добрый день. Подскажите самый быстрый способ сравнение строк с учётом null. Пока испробовал 3 метода: 1. a=b or (a is null and b is null) 2. a=b or (coalesce(a,b) is null) 3. a IS NOT DISTINCT FROM b Самый быстрый в моём случае первый. Может кто предложит более быстрый вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.03.2014, 11:26:14
|
|||
|---|---|---|---|
|
|||
Быстрое сравнение строк с учётом null |
|||
|
#18+
xProДобрый день. Подскажите самый быстрый способ сравнение строк с учётом null. Пока испробовал 3 метода: 1. a=b or (a is null and b is null) 2. a=b or (coalesce(a,b) is null) 3. a IS NOT DISTINCT FROM b Самый быстрый в моём случае первый. Может кто предложит более быстрый вариант? теоретически последний должен быть самым быстрым... а как вы проверяли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.03.2014, 11:40:30
|
|||
|---|---|---|---|
|
|||
Быстрое сравнение строк с учётом null |
|||
|
#18+
Идёт join к n таблицам, n-1 - это справочники, и ещё одна таблица фактов. На одной таблице выглядит так: Код: plsql 1. 2. 3. Но это простой пример, на практике идёт запрос к 3 до 10 таблицам. Структура таблиц простая: dim1 key(integer),name (text) temp dim1(itneger),value(double) Вот на таком запросе примерно и проверял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.03.2014, 07:58:31
|
|||
|---|---|---|---|
|
|||
Быстрое сравнение строк с учётом null |
|||
|
#18+
xPro, 4. coalesce(a, '') = coalesce(b, '') при необходимости создать функциональный индекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.03.2014, 15:47:58
|
|||
|---|---|---|---|
|
|||
Быстрое сравнение строк с учётом null |
|||
|
#18+
Просто Нафаня, ну если для вас null и строка нулевой длинны это одно и тоже, то можно и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.03.2014, 15:54:22
|
|||
|---|---|---|---|
Быстрое сравнение строк с учётом null |
|||
|
#18+
xProДобрый день. Подскажите самый быстрый способ сравнение строк с учётом null. Пока испробовал 3 метода: 1. a=b or (a is null and b is null) 2. a=b or (coalesce(a,b) is null) 3. a IS NOT DISTINCT FROM b Самый быстрый в моём случае первый. Может кто предложит более быстрый вариант? самый быстрый в вашем случае 3-й. Код: sql 1. 2. 3. 4. 5. 6. 7. а вот в случае индексов, как сейчас помню, были проблемы с 3-м (индекс не пользовался), приходилось опускаться до 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.03.2014, 16:47:31
|
|||
|---|---|---|---|
|
|||
Быстрое сравнение строк с учётом null |
|||
|
#18+
Не знаю насколько в тему, но касательно IS NOT DISTINCT FROM есть в документации вот такая строчка: At present, IS NOT DISTINCT FROM is handled much less efficiently than =, so don't do this unless you must. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1998789]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 492ms |

| 0 / 0 |
