В Sql Server у меня есть таблица с первичным ключом Identity. Часто мне нужны последние несколько новых записей, поэтому я захватываю Top n отсортированным по убыванию первичного ключа. Должен ли я определять индекс первичного ключа как нисходящий, или он не имеет значения? то есть, если они находятся в порядке возрастания, то может ли sql так же эффективно работать назад?Основной ключ по возрастанию по убыванию
ответ
С чисто поиском информации точки зрения, это не имеет никакого значения, является ли ключ по убыванию или возрастанию, если вы хотите, чтобы вытащить N последний или N старые записи:
Внутренних алгоритмы SQL Server может перемещаться одинаково эффективно в обоих направлениях по индексу с одним столбцом, независимо от последовательности, в которой хранятся ключи. Например, указание DESC на индекс с одним столбцом не делает запросы с предложением ORDER BY IndexKeyCol DESC быстрее, чем если бы для индекса был указан ASC.
http://msdn.microsoft.com/en-us/library/aa933132(SQL.80).aspx
Однако при почти любой нормальных обстоятельствах, вы хотите, чтобы ваш первичный ключ быть восходящей и ординально последовательного для предотвращения фрагментации. SQL Server оптимизирован для физического добавления новых записей в конец файла базы данных. Если нужно вставить каждую новую запись вверху и нажать все вниз, это, вероятно, приведет к почти 100% фрагментации.
Это не имеет абсолютно никакого значения.
Я даже не могу представить, почему это можно объявить в любом случае.
С одним индексом столбца это не имеет значения, но ASC и DESC вступают в игру когда у вас есть несколько столбцов в индексе, а порядок имеет значение для второго/третьего/четвертого/etc столбца. –
Это не имеет никакого смысла для меня. Если у вас есть два значения полей, то, как вы спускаетесь на дерево, совершенно безразлично. Это просто догадка, или у вас есть ссылка? – dkretz
Имеет смысл для меня. Если у вас есть индекс, объявленный 'A ASC, B DESC', но большинство ваших запросов:' ORDER BY A ASC, B ASC', который не собирается избегать сортировки. –
- 1. по возрастанию и убыванию
- 2. по возрастанию и убыванию массив
- 3. По возрастанию и убыванию по значению колонки
- 4. Python3 по возрастанию по убыванию Сортировка
- 5. по возрастанию или убыванию по нескольким столбцам
- 6. сортировать по возрастанию/по убыванию vba excel
- 7. C: sbrk() по возрастанию или по убыванию?
- 8. Linq порядок по возрастанию сортировать по убыванию
- 9. По возрастанию и по убыванию Java
- 10. MYSQL сортировать по убыванию или по возрастанию
- 11. делает основной кластеризованный ключ по умолчанию по возрастанию?
- 12. SQL Сортировка месяца по возрастанию и по месяцам по убыванию?
- 13. Тип сортировки по стоку по возрастанию или по убыванию?
- 14. Kendo Grid Сортировка по убыванию по возрастанию по заголовку Нажмите
- 15. Передача по возрастанию/убыванию параметра uasort()?
- 16. Сортировка нескольких значений по возрастанию и убыванию
- 17. Список сортировки по возрастанию и убыванию
- 18. динамическая DataTable сортировка по возрастанию или убыванию
- 19. по возрастанию и убыванию в с
- 20. Django Порядок по возрастанию и убыванию
- 21. Как совместить сортировку по возрастанию и убыванию?
- 22. Быстрый поиск Сортировка по убыванию Не возрастанию
- 23. PHP Порядок по возрастанию/убыванию не работает
- 24. Сортировать по возрастанию и убыванию в списке
- 25. По возрастанию и убыванию в Ионном
- 26. Печать связанного списка по возрастанию и убыванию
- 27. Бинарный поиск в C++: по возрастанию + по убыванию упорядоченные массивы
- 28. Сортировка по максимальному полю массива, по возрастанию или убыванию
- 29. Java Сортировка Цена Значения по возрастанию и по убыванию
- 30. golang sort slice по возрастанию или по убыванию
Нет, вы должны ** не ** создавать его как 'desc'. В итоге вы получите много логической фрагментации из вставок [как показано здесь] (http://stackoverflow.com/a/9382500/73226) –