Предоставляет ли некластеризованный индекс какие-либо гарантии порядка строк?


9

У меня есть разработчик, который хотел бы, чтобы при выполнении оператора select без упорядочения строки в таблице были в том порядке, в котором они были вставлены. Разработчик предложил перейти от кластерного к некластерному индексу.

Изменяя индекс с кластеризованного на некластеризованный, дает ли это какие-либо гарантии порядка, в котором строки будут отображаться в таблице?

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

Заранее спасибо за помощь.

Ответы:


30

Если вам нужен порядок в результатах вашего запроса, укажите ORDER BY. Это так просто.

Прочтите эту статью от архитектора SQL Server Конора Каннингема, которая в значительной степени подводит итог этой темы:



6

Не правда, но предположим, что так и было. Если строки уже упорядочены по индексу, затраты на упорядочение по ним будут очень низкими, поэтому нет оснований не указывать это.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.