Сортировка по убыванию - PullRequest
7 голосов
/ 18 мая 2009

Консультант по настройке ядра СУБД наконец-то избавился от призрака и больше не может мне помочь, поэтому мне нужно узнать немного больше об индексах (не должно ли это быть индексами?).

Я думаю, что я более или менее там. Я знаю, когда использовать составные индексы, что включать в мои индексы, разницу между кластерными и некластеризованными индексами и т. Д.

Однако ... Одна вещь все еще смущает меня. При создании индекса существует порядок сортировки индекса. Я понимаю, что это значит, но я изо всех сил пытаюсь придумать сценарий, в котором индекс обратного порядка может быть полезен. Мое лучшее предположение состоит в том, чтобы ускорить запросы, которые извлекают строки, которые появляются в конце отсортированного по прямой индексации, такие как самые последние строки в хронологическом порядке, но, честно говоря, я более или менее невежественен.

Может ли кто-нибудь просветить меня?

Ответы [ 5 ]

10 голосов
/ 18 мая 2009

Порядок сортировки индекса имеет значение только для индекса с несколькими столбцами. Для одного столбца Sql Sever может просто использовать индекс в обратном порядке, если ему требуется DESC, где индекс - ASC.

Для поиска по нескольким столбцам сортировка индекса имеет значение. Скажем, у вас есть индекс:

field1, field2 desc

Это было бы полезно для этого запроса:

select field1, field2 from table order by field1, field2 desc

И для этого запроса, где индекс можно использовать в обратном порядке:

select field1, field2 from table order by field1 desc, field2

Но для этого запроса Sql Server потребуется дополнительная сортировка в памяти:

select field1, field2 from table order by field1, field2
1 голос
/ 18 мая 2009

Вот BOL при индексации заказов на сортировку:

http://msdn.microsoft.com/en-us/library/ms181154.aspx

Должно помочь вам немного лучше понять внутреннюю работу, а также синтаксис.

1 голос
/ 18 мая 2009

Определение правильного порядка сортировки может потенциально устранить необходимость в шаге сортировки в плане запроса при определении порядка с помощью в операторе выбора.

Msdn артикул

0 голосов
/ 18 мая 2009

Зачастую самые последние данные имеют тенденцию к смещению, поэтому, если вы сортируете по «убыванию даты», вы оптимизируете для этого варианта использования.

Полагаю, это будет иметь больше смысла для числовых, а не буквенных символов.

0 голосов
/ 18 мая 2009

Вы сортируете индекс по убыванию, когда разрабатываете этот индекс для запроса, который будет отсортирован по убыванию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...