Индексные представления обновляют во время транзакции?

Вы испорчены для выбора с точки зрения опций здесь. При использовании Sybase или SQL Server 2008, можно создать переменные даты типа и присвоить им значения даты и времени. Механизм базы данных избавляется от времени для Вас. Вот быстрый и грязный тест для иллюстрирования (Код находится на диалекте Sybase):

declare @date1 date
declare @date2 date
set @date1='2008-1-1 10:00'
set @date2='2008-1-1 22:00'
if @date1=@date2
    print 'Equal'
else
    print 'Not equal'

Для SQL 2005 и ранее что можно сделать, является преобразованием дата к varchar в формате, который не имеет компонента времени. Например, следующие возвраты 22.08.2008

select convert(varchar,'2008-08-22 18:11:14.133',102)

102 части определяют форматирование (Книги онлайн могут перечислить для Вас все доступные форматы)

Так, что можно сделать, записать функцию, которая берет дату и время и извлекает элемент даты и отбрасывает время. Как так:

create function MakeDate (@InputDate datetime) returns datetime as
begin
    return cast(convert(varchar,@InputDate,102) as datetime);
end

можно тогда использовать функцию для компаньонов

Select * from Orders where dbo.MakeDate(OrderDate) = dbo.MakeDate(DeliveryDate)
5
задан Peder Rice 6 July 2009 в 21:38
поделиться

3 ответа

An index or an indexed view is updated immediately as part of the DML statement doing the update. In your case if you analyze the actual execution plan of the INSERT you'll see that it contains operators for update of all physical 'partitions', and you indexed view is one of such partitions.

10
ответ дан 13 December 2019 в 05:40
поделиться

Is this a centrally contested table? I.E by locking it for the insert in the transaction are you going to be causing tons of other spids to wait?

The simple answer is yes, the views will update with the new values but this will create some performance headaches you should think about as well if there are other places that you insert into these underlying tables from.

0
ответ дан 13 December 2019 в 05:40
поделиться

Индексированные представления обновляются немедленно, вы можете посмотреть план выполнения и убедитесь сами. Это вызывает много конфликтов за блокировку: будьте готовы отказаться от индексированного представления

2
ответ дан 13 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: