Вопросы по MS SQL 2000
От: Albatross  
Дата: 19.12.06 20:41
Оценка:
Вопросы


1) есть таблица, там два поля есть. Записи часто обновляются Кроме того, часто происходит поиск по обоим полям одновременно и по первому полю.
Намного ли лучше будет, если создать индекс из двух полей и индекс из первого поля?
или инднеса из двух полей достаточно?

2) Подскажите, как опитимизировать запрос
Update A set x1 = @@value where id in (select top 100 id from A where x1 is null and x2=@criteria order by x3)


Есть иднесы на id, x1 и x2, x3
Работает медленно, при этом

set transaction isolation level read uncommitted
Update A set x1 = @@value where id in (select top 100 id from A where x1 is null and x2=@criteria order by x3)
Есть иднесы на id, x1 и x2, x3


работает быстрее, чем

set transaction isolation level read uncommitted
Update A set x1 = @@value where id in (select top 100 id from A with (nolock) where x1 is null and x2=@criteria order by x3)
Есть иднесы на id, x1 и x2, x3
— также неясно, почему

3)
Есть ли разница в работе простой транзакции
INSERT INTO A (x1,x2) values (@x1,@x2)

в зависимости от уровня изолированности, на котором она работает? кажется, нету, верно ли?

Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.