Saya cukup yakin bahwa Anda perlu menentukan NOLOCK
untuk masing-masing JOIN
di kueri. Tetapi pengalaman saya terbatas pada SQL Server 2005.
Ketika saya mencari MSDN hanya untuk konfirmasi, saya tidak dapat menemukan sesuatu yang pasti. Pernyataan di bawah ini sepertinya membuat saya berpikir, bahwa untuk tahun 2008, kedua pernyataan Anda di atas adalah sama meskipun untuk tahun 2005 tidak demikian:
[SQL Server 2008 R2]
Semua petunjuk kunci disebarkan ke semua tabel dan tampilan yang diakses oleh rencana kueri , termasuk tabel dan tampilan yang dirujuk dalam tampilan. Juga, SQL Server melakukan pemeriksaan konsistensi kunci yang sesuai.
[SQL Server 2005]
Dalam SQL Server 2005, semua petunjuk kunci disebarkan ke semua tabel dan tampilan yang direferensikan dalam tampilan. Juga, SQL Server melakukan pemeriksaan konsistensi kunci yang sesuai.
Selain itu, tunjuk catatan - dan ini berlaku untuk 2005 dan 2008:
Petunjuk tabel diabaikan jika tabel tidak diakses oleh rencana kueri. Ini mungkin disebabkan oleh pengoptimal yang memilih untuk tidak mengakses tabel sama sekali, atau karena tampilan yang diindeks diakses sebagai gantinya. Dalam kasus terakhir, mengakses tampilan yang diindeks dapat dicegah dengan menggunakan OPTION (EXPAND VIEWS)
petunjuk kueri.