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_LOGGED
kurtarma modelinde bulunması yer alır.
Kullanarak başka bir potansiyel performans yararı var mı WITH TABLOCK
, bir de INSERT
veritabanı (zaman boş bir masaya Tempdb ) kullandığı SIMPLE
kurtarma 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...SELECT
birkaç 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.