Поява впорядкованого набору результатів, без ORDER BYзастереження, часто є результатом сканування, вилучення рядків у порядку індексу. Однією з причин, чому сканування порядку індексів зазвичай вибирається за READ COMMITTEDрівнем ізоляції за замовчуванням, є те, що це зменшує шанси небажаних аномалій паралельної валюти, таких як зустрічатися з одним і тим же рядком кілька разів або повністю пропускати деякі рядки. Це детально описано в кількох місцях, у тому числі в цій серії статей про рівні ізоляції.
З NOLOCKнатяком на таблицю така поведінка є розслабленою, і доступ до таблиці здійснюється в умовах більш толерантного READ UNCOMMITTEDрівня ізоляції, який може сканувати дані в порядку розподілу замість порядку індексу. Як описано в цьому посиланні, рішення про те, чи використовувати сканування порядку розподілу чи індексу, покладається на механізм зберігання даних. Цей вибір може змінюватися між виконанням без зміни плану запитів .
Це може здатися дуже абстрактним, але його можна легше продемонструвати за допомогою деяких запитів, використовуючи незадокументовані функції щодо бази даних AdventureWorks2012 .
USE AdventureWorks2012;
GO
-- Appears to be ordered by BusinessEntityID
-- File:Page:Slot goes up and down several times
-- Show physical locations with sys.fn_PhysLocFormatter (undocumented)
SELECT
P.BusinessEntityID,
[(File:Page:Slot)] =
sys.fn_PhysLocFormatter(%%physloc%%)
FROM Person.Person AS P;
-- Same query with TABLOCK or NOLOCK
-- Allocation-order (IAM) scan
-- Now appears to be ordered by File:Page:Slot instead of BusinessEntityID
SELECT P.BusinessEntityID,
[(File:Page:Slot)] =
sys.fn_PhysLocFormatter(%%physloc%%)
FROM Person.Person AS P WITH (NOLOCK);

Запити запозичені з невеликою модифікацією у Пола Уайта .
Нарешті, щоб зрозуміти, ця відповідь стосується появи впорядкованого набору результатів. Немає гарантованого замовлення на презентацію без вищого рівня ORDER BY.
Сканування порядку розподілу може відбуватися за різних інших обставин, наприклад, коли придбано блокування рівня таблиці або база даних перебуває в режимі лише для читання. Паралелізм також може впливати на порядок повернення даних. Ключовим моментом є те, що без ORDER BYцього повернення даних замовлення може змінюватися в залежності від часу.