Sorgudaki NOLOCK
her biri için belirtmeniz gerektiğinden oldukça emindim JOIN
. Ancak deneyimim SQL Server 2005 ile sınırlıydı.
MSDN'i sadece onaylamak için aradığımda, kesin bir şey bulamadım. Aşağıdaki ifadeler, 2008 için yukarıdaki iki ifadenizin eşdeğer olduğunu düşündürüyor gibi görünse de 2005 için durum böyle değil:
[SQL Server 2008 R2]
Tüm kilit ipuçları, görünümde başvurulan tablolar ve görünümler dahil olmak üzere sorgu planı tarafından erişilen tüm tablolara ve görünümlere yayılır . Ayrıca, SQL Server karşılık gelen kilit tutarlılığı denetimlerini gerçekleştirir.
[SQL Server 2005]
SQL Server 2005'te, tüm kilit ipuçları bir görünümde başvurulan tüm tablo ve görünümlere yayılır. Ayrıca, SQL Server karşılık gelen kilit tutarlılığı denetimlerini gerçekleştirir.
Ayrıca, not edin - bu hem 2005 hem de 2008 için geçerlidir:
Sorgu planı tarafından tabloya erişilmezse tablo ipuçları yok sayılır. Bunun nedeni, optimize edicinin tabloya hiç erişmemeyi seçmesi veya bunun yerine dizine alınmış bir görünüme erişilmesidir. İkinci durumda, OPTION (EXPAND VIEWS)
sorgu ipucu kullanılarak dizinlenmiş bir görünüme erişim engellenebilir .