powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как SQL Server производит выборку данных?
5 сообщений из 5, страница 1 из 1
Как SQL Server производит выборку данных?
    #32022037
Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как SQL Server производит выборку данных?

Если в таблице нет первичного ключа и вообще ничего, что бы идентифицировало каждую строку данных, к примеру, таблица содержит одно поле (динамику изменения цены акции за день, новое значение цены заносится каждую минуту), то в каком порядке будет возвращать строки данных SQL Server – в последовательности в которой их заносили или в какой-то произвольной? И необходимо ли присутствие ключа в таблице в этом случае?

Я точно знаю, что Access, при выборке, перемешивает данные, а вот мешает ли их SQL???

Заранее благодарен, Александр.
...
Рейтинг: 0 / 0
Как SQL Server производит выборку данных?
    #32022042
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращать данные будет в общем случае в произвольном порядке. Для выборки в нужнои порядке используйте конструкцию Order by. Причем учтите, что даже если первичный ключ имеется, все равно без использования Order by не будет у Вас упорядоченности в полученном рекордсете. Данные физически хранятся в соответствии с кластерным индексом. По умолчанию при создании первичного ключа на него накладывается кластерный индекс, поэтому по умолчанию данные физически хранятся в порядке задаваемым первичным ключом, но при желании кластерный индекс может отсутствовать вообще или быть наложен на любое другое поле.
Обратите внимание, я говорю именно хранятся, но это еще не означает что они будут выдаваться Вам в том же порядке, поэтому не стоит на это расчитывать.
Так например, если имеется таблица
create table m(a int primary key, b int, c int)
create index cc on m(b)

И данные
insert into m values (1,56,2)
insert into m values (2,10,777)
insert into m values (3,100,230)
insert into m values (4,1001,23)
insert into m values (5,1,23)
то от select * from m еще стоит ожидать упорядоченность по a
, а от select * from m where b>0
или select b from m - уже не стоит

Можно привести и другие примеры. Все зависит от пути доступа к данным.
Одним словом, чтобы не болела голова, ВСЕГДА для упорядоченного набора используйте Order by, ибо иначе никакой упорядоченности не гарантируется.

Насчет необходимости наличия ключа как такого - это смотря что под этим понимать. Без него работать будет. Но очень не рекомендуется.
...
Рейтинг: 0 / 0
Как SQL Server производит выборку данных?
    #32022049
Владимир Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшое дополнение.
В общем случае, для упорядочения и идентификации, обычно используют дополнительное поле целого типа (например int) со свойством identity.
Если у Вас, Александр, добавление происходит гарантированно по одной записи и с интервалом в минуту, то для решения проблемы сортировки (и идентификации) можно использовать поле типа дата-время (datetime) с указанием значения по умолчанию функции getdate(). Кстати, это поле может пригодиться и для других применений: построения диаграмм, вычисления статистики и др.
...
Рейтинг: 0 / 0
Как SQL Server производит выборку данных?
    #32022151
BootMaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще специальный тип данных timestamp, позволяющий уникально в пределах базы идентифицировать любое изменение в колонке, будь то insert or update. Сам, правда, не пользовался, но думаю, что вещь может быть полезная. Впрочем, на скорости выборки вряд ли отразится
...
Рейтинг: 0 / 0
Как SQL Server производит выборку данных?
    #32022182
Axl_Dead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще как отразится!!!
Или целые числа в ID сравнивать или даты по массиву в тысячи строк...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как SQL Server производит выборку данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]