Bazı durumlarda, INSERT INTO <tablename> (WITH TABLOCK)minimum günlük kaydı nedeniyle bir işlem yapmak daha hızlı olacaktır. Bu koşullar arasında veritabanının BULK_LOGGEDkurtarma modelinde bulunması yer alır.
Kullanarak başka bir potansiyel performans yararı var mı WITH TABLOCK, bir de INSERTveritabanı (zaman boş bir masaya Tempdb ) kullandığı SIMPLEkurtarma modeli?
SQL Server 2012 Standard Edition ile çalışıyorum.
Benim kullanım durumum bir saklı yordam içinde bir geçici tablo oluşturmak ve hemen INSERT...SELECTbirkaç milyon satır içerebilir bir kullanarak doldurmak için . Bu tür tempdb kötüye kullanımından kaçınmaya çalışıyorum , ancak bazen gerekli.
Talep etmek için bir dava oluşturmaya çalışıyorum TABLOCK. Hiçbir şeye zarar vermeyecek gibi görünmüyor ve bir yararı olabilir. Tabloya yazmak isteyen başka bir işlem olmadığından eminim nerede kod tabanı boyunca eklemek için yeterli potansiyel yarar olup olmadığını anlamaya çalışıyorum.
Genellikle kümelenmiş bir PK ile yeni oluşturulan bir yerel geçici tabloya ekliyorum, ancak bazen bir yığın kullanın.