Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индекс по функции / 10 сообщений из 10, страница 1 из 1
13.03.2013, 00:06
    #38182219
ArtMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
Как в ms sql сделать индекс по функции (такая фишка есть в оракле).
Проблема в сортировке поля даты, где есть NULL значения (NULL считать самым большим значением).
...
Рейтинг: 0 / 0
13.03.2013, 00:14
    #38182227
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
по сабжу - попробуйте сделать индекс по вычислимому полю
кажется, оно должно быть persisted для этого... точно не помню, гляньте в доке

по поводу сортировки я, честно говоря, не понял что за проблема. наверное, что-то оптимизируете
...
Рейтинг: 0 / 0
13.03.2013, 00:45
    #38182254
ОперацияПингвин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
Сделать можно, но сервер запросы к этой таблице перестанет параллелить.
...
Рейтинг: 0 / 0
13.03.2013, 09:45
    #38182523
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
ArtManПроблема в сортировке поля даты, где есть NULL значения (NULL считать самым большим значением).По возрастанию:
Код: sql
1.
ORDER BY CASE WHEN DateField IS NULL THEN 0 ELSE 1 END DESC, DateField;

По убыванию:
Код: sql
1.
ORDER BY CASE WHEN DateField IS NULL THEN 0 ELSE 1 END, DateField DESC;

В чём проблема?
...
Рейтинг: 0 / 0
13.03.2013, 10:33
    #38182602
ArtMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
проблема в том, что индекс не берется и операция сортировки от этого дорогая.

Почему я не могу создать колонку вычисляемую isnull([MYDATE],'99991231') с типом persisted, сервер ругается что

Код: plaintext
Computed column С1 in table T1 cannot be persisted because the column is non-deterministic.
...
Рейтинг: 0 / 0
13.03.2013, 10:37
    #38182608
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
ArtManпроблема в том, что индекс не берется и операция сортировки от этого дорогая.

Почему я не могу создать колонку вычисляемую isnull([MYDATE],'99991231') с типом persisted, сервер ругается что

Код: plaintext
Computed column С1 in table T1 cannot be persisted because the column is non-deterministic.
CREATE TABLE покажите
...
Рейтинг: 0 / 0
13.03.2013, 10:38
    #38182609
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
ArtManпроблема в том, что индекс не берется и операция сортировки от этого дорогая.

Почему я не могу создать колонку вычисляемую isnull([MYDATE],'99991231') с типом persisted, сервер ругается что

Код: plaintext
Computed column С1 in table T1 cannot be persisted because the column is non-deterministic.


Код: sql
1.
isnull([MYDATE], CONVERT(datetime2, '9999-12-31', 126)))
...
Рейтинг: 0 / 0
13.03.2013, 11:06
    #38182669
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
Кстати, 112-й стиль тоже делает функцию детерминированной.
Код: sql
1.
ISNULL([MYDATE],CONVERT(DATETIME,'99991231',112))
...
Рейтинг: 0 / 0
13.03.2013, 11:10
    #38182679
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
Для индекса по вычисляемому полю PERSISTED вовсе не обязательно.
...
Рейтинг: 0 / 0
13.03.2013, 11:35
    #38182743
ОперацияПингвин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по функции
isnull( @date, {d '2100-01-01'} )
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индекс по функции / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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