Sql 2005, это быстрее сортировать по дате и по int? - PullRequest
1 голос
/ 02 марта 2010

Если сортировка по int выполняется быстрее, в чем заключается хитрость сортировки таблицы по DateTime с использованием возможности сортировки по int?

Ответы [ 5 ]

1 голос
/ 02 марта 2010

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

Это 32-разрядное число, поэтому оно сортируется так же быстро, как и * 1004.*, но по сравнению с datetime, имеет меньший диапазон допустимых дат (1900-2079) и округляется до ближайшей минуты.

1 голос
/ 02 марта 2010

При условии, что все остальные вещи равны (оба столбца одинаково проиндексированы или не проиндексированы), сортировка столбцов int должна быть теоретически более быстрой, поскольку они меньше (4 байта против 8 байтов), и это может ускорить индивидуальное сравнение.

0 голосов
/ 02 марта 2010

int быстрее, потому что вам придется меньше бить по жесткому диску, чтобы извлечь данные из него, чтобы выполнить сортировку. целые числа также меньше, чем datetime.

В схеме типа "звезда" обычно используют целое число для хранения указателя на другую таблицу, в которой есть фактическое время даты. Это также может быть полезно для случаев, когда datetime хранится в другой таблице и также содержит даты, например DayOfYear или Hour или Second, разбитые на отдельные столбцы. Затем эти столбцы можно индексировать, чтобы повысить производительность запросов к датам.

0 голосов
/ 02 марта 2010

Пытаетесь ли вы улучшить производительность сортировки поля Datetime, выполнив какой-то трюк? Если это так, я бы оставил SQL Server для его собственных оптимизаций и сделал бы ваш код понятным и более простым для чтения. Имейте индекс в своем поле Datetime.

0 голосов
/ 02 марта 2010

С какой целью ты спрашиваешь это?

Если вы индексируете свой datetime, то вы должны получить эффективную сортировку по столбцу.

Еще лучше, установите в поле datetime кластерный индекс таблицы, и это должно быть наиболее эффективным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...