Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разрушение сортировки по умолчанию в SQL2000  [new]
g-v-s
Member

Откуда:
Сообщений: 3
Простой запрос на одну таблицу с небольшим условием.
При выполнении отрабатывает прекрасно, всё сортируется по первому ключевому полю (Так и должно быт, оно так и есть).
Но среди отбора нужна первая строка таблицы (она имеет все пустые поля) она не проходит по условию.
В условие добавляю OR на первую строку, в результате отбора нужные строки + первая строка таблицы НО СОРТИРОВКА по ключевому полю РАЗРУШЕНА, не поддаётся анализу никакой логике.
Использовать Order by не могу т.к. код писал не я и доступа на изменения не имею.
Проверял индексы, всё в порядке.
ВОПРОС: почему рушится сортировка по умолчанию при добавление в условие OR?
Как можно исправить используя только настройки сервера SQL2000?
20 май 11, 11:48    [10683174]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
Правило простое. Только наличие Order by гарантирует упорядочивание. Без вариантов
Нет никакой "сортировки по умолчанию"

Сообщение было отредактировано: 20 май 11, 11:50
20 май 11, 11:49    [10683190]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
Раз Order by нет, то смешно жаловаться на порядок и делать неверные выводы о якобы существующей сортировке по умолчанию.
20 май 11, 11:50    [10683199]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
g-v-s
Member

Откуда:
Сообщений: 3
Почему тогда всегда все запросы без ORDER BY И OR-в условии сортируются по ключевому полю?
20 май 11, 12:38    [10683626]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
g-v-s
Почему тогда всегда все запросы без ORDER BY И OR-в условии сортируются по ключевому полю?

С чего вы решили, что это намеренная сортировка ? Вы увидели операцию сортровки в плане выполнения ?
20 май 11, 12:40    [10683650]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
g-v-s
Почему тогда всегда все запросы без ORDER BY И OR-в условии сортируются по ключевому полю?
Вы оператор сортировки в плане увидели, да?
20 май 11, 12:40    [10683653]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
g-v-s
Почему тогда всегда все запросы без ORDER BY И OR-в условии сортируются по ключевому полю?

Просто везет. Да и запросы видать элементарнейшие, без соединений, объединений и аггрегатов
20 май 11, 12:54    [10683775]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
g-v-s
Member

Откуда:
Сообщений: 3
Anatoly Podgoretsky
g-v-s
Почему тогда всегда все запросы без ORDER BY И OR-в условии сортируются по ключевому полю?

Просто везет. Да и запросы видать элементарнейшие, без соединений, объединений и аггрегатов

И всё таки, существует сортировка по умолчанию (без ORDER BY) в элементарнейших запросах, или это упорядоченная обработка SQL-ем строк (таблицы по ключевому полю) которая нарушается при добавлении OR в условие?
23 май 11, 05:46    [10692025]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
g-v-s
Anatoly Podgoretsky
пропущено...

Просто везет. Да и запросы видать элементарнейшие, без соединений, объединений и аггрегатов

И всё таки, существует сортировка по умолчанию (без ORDER BY) в элементарнейших запросах, или это упорядоченная обработка SQL-ем строк (таблицы по ключевому полю) которая нарушается при добавлении OR в условие?

Может просто при добавлении условий сервер начинает использовать какой-то другой индекс?
И вообще как ранее писали без ордер бай, сортировку вам никто не гарантирует.
23 май 11, 06:11    [10692034]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
Егоров Александр
Member

Откуда: Хабаровск
Сообщений: 517
g-v-s
И всё таки, существует сортировка по умолчанию (без ORDER BY)...

Не существует. Или ткните пальцем в BOL, где вы прочли об этом.

То, что Вы понимаете под "сортировкой по умолчанию" - это порядок записей в кластерном индексе, он же "ключевое поле". "Элементарнейшие запросы" как правило используют именно его, отсюда у Вас и появилась представление о сортировке по умолчанию...
23 май 11, 08:03    [10692105]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
iljy
Member

Откуда:
Сообщений: 8711
g-v-s
И всё таки, существует сортировка по умолчанию (без ORDER BY) в элементарнейших запросах, или это упорядоченная обработка SQL-ем строк (таблицы по ключевому полю) которая нарушается при добавлении OR в условие?

Это не сортировка по умолчанию, это просто физический порядок выбираемых записей. Для небольших таблиц или в простейших случаях отсутствия фрагментации он будет совпадать с порядком кластерного индекса.
23 май 11, 09:13    [10692269]     Ответить | Цитировать Сообщить модератору
 Re: Разрушение сортировки по умолчанию в SQL2000  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Вопрос на злобу дня - Просмотр кластеризованного индекса - Часть I

Вопрос на злобу дня - Просмотр кластеризованного индекса - Часть II

Вопрос на злобу дня - Просмотр кластеризованного индекса - Часть III
23 май 11, 09:28    [10692328]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить