Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.18;
Скачать: CL | DM;

Вниз

checksum   Найти похожие ветки 

 
Sergey2   (2009-08-13 17:05) [0]

Есть таблица в которой 10.000.000 записей. Необходимо выбирать из неё записи по условию фильтрации по полю типа datetime.


declare @currDate datetime
set @currdate = getdate()

declare @priorDate datetime
set @priorDate = (getdate() - 30)

select field1, field2, filldata
from MyTable
where filldata < @currdate and filldata > @priorDate


Возвращается в результате выборки несколько записей. Запрос выполняется секунд 40-50. что очень медленно.
Какие пути решения ? каким образом можно уменьшить время выполнения запроса? почитал про checksum. попробовал.

Получилось примерно следующее.



declare @currDate datetime
set @currdate = getdate()

declare @priorDate datetime
set @priorDate = (getdate() - 30)

select *
from
(select field1, field2, checksum(filldata  collate database_default) filldateHash
from MyTable) as mt
where mt.filldateHash < checksum(@currdate) and
mt.filldateHash > checksum(@priorDate)



Запрос то теперь этот быстро выполняется. только вот


where mt.filldateHash < checksum(@currdate) and
mt.filldateHash > checksum(@priorDate)

ну никак не выполняется.


 
Ega23 ©   (2009-08-13 17:08) [1]

Индекс на это поле наложи.


 
Павел Калугин ©   (2009-08-14 00:01) [2]

1. вместо
> (getdate() - 30)

dateadd(dd,-30,getdate())

2. что получить то надо? данные за период?
если так то накой черт checksum? смотрел что он возвращает?
а план 1-го запроса смотрел? где тормозит?
совет
> [1] Ega23 ©   (13.08.09 17:08)



Страницы: 1 вся ветка

Текущий архив: 2009.10.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
11-1206625817
andreil
2008-03-27 16:50
2009.10.18
Проблема с видимостью элементов :(


15-1249654837
девушка
2009-08-07 18:20
2009.10.18
Кого-нибудь дергали в связи с 152-ФЗ ?


10-1160635928
MaxBooster
2006-10-12 10:52
2009.10.18
Создание и вызов Delphi COM обектов из WSH


2-1250146359
oldman
2009-08-13 10:52
2009.10.18
Запуск программы, установленной в Виндоус по умолчанию


2-1250078861
Lexus_samara
2009-08-12 16:07
2009.10.18
Как программно удалить одну строку из текстового файла(txt)?