Bu gerçekten verilerin ne kadar değiştiğine bağlı. Diyelim ki bu tablonun 20 sütunu var. Ve ayrıca 5 endeksiniz var - her biri farklı. sütunu.
Şimdi, 20 sütundaki değerlerin tümü değişiyorsa veya 5 sütundaki veriler değişse ve bu 5 sütunun tümü de dizine eklenmişse, "silme ve ekleme" işleminden daha iyi olabilirsiniz. Ancak, yalnızca 2 sütun değişiyorsa ve bunların kümelenmemiş dizinlerin bir parçası olmadığını söyleyebiliyorsa, kayıtları "Güncelleme" durumundan daha iyi olabilirsiniz, çünkü bu durumda yalnızca kümelenmiş dizin güncellenir (ve dizinlerde güncellenecek).
Daha fazla araştırmada, yukarıdaki yorumun, SQL Server'ın dahili olarak bir UPDATE işlemi yapmak için 2 ayrı mekanizmasına sahip olması nedeniyle gereksiz olduğunu buldum. - Bir "yerinde güncelleme" (yani, bir sütun değerini orijinal satırdaki yeniye değiştirerek) veya "yerinde olmayan bir GÜNCELLEME" olarak (DELETE ardından bir INSERT).
Yerinde güncellemeler kural ve mümkünse yapılır. Burada satırlar, tam olarak aynı sayfada aynı yerde, aynı oranda kalırlar. Sadece etkilenen baytlar şifrelenir. Tlog'da yalnızca bir kayıt var (güncelleme tetikleyicisi olmaması koşuluyla). Bir yığın güncelleniyorsa güncellemeler yapılır (ve sayfada yeterince yer vardır). Kümelenme anahtarı değişirse ancak satırın hiç hareket etmesi gerekmiyorsa güncellemeler yapılır.
Örneğin: Soyadı üzerinde kümelenmiş bir dizininiz varsa ve adlarınız varsa: Able, Baker, Charlie Artık Baker'ı Becker'e güncellemek istiyorsunuz. Hiçbir satır taşınmak zorunda değil. Böylece bu yerinde olabilir. Oysa eğer Able'ı Kumar'a güncellemeniz gerekiyorsa, satırların kaydırılması gerekecek (aynı sayfada olsalar bile). Bu durumda, SQL Server bir INSERT ve ardından bir SİLME yapar.
Yukarıdakileri göz önünde bulundurarak, normal bir UPDATE yapmanızı ve SQL Server'ın bunu dahili olarak nasıl yapmanın en iyi yolunu bulabilmenizi öneririm.
. - Herhangi bir SQL Server ile ilgili iç yapıları "GÜNCELLEME" iç donanım üzerinde ya da bu konuda daha ayrıntılı bilgi için Kalen Delaney, Paul Randal en vd kitabını kontrol SQL Server 2008 İçyapısı .