Sp_recompile (Transact-sql)
Neden saklı yordamları ve Tetikleyicileri onlar çalıştırılan bir sonraki açışınızda recompiled. Bunu sonraki oluşturulacak yeni bir plan zorlamak yordam önbelleğindeki mevcut planın bırakarak yordam veya tetikleyiciyi çalıştırıldığını yapar. In a SQL Server Profilerkoleksiyonu, SP:CacheInsert olay günlüğe olay yerine SP:Recompile.
Transact-SQL Sözdizim Kuralları
Sözdizimi
sp_recompile [ @objname = ] 'object'
Bağımsız değişkenler
- [ @objname= ] 'object'
Saklı yordam, tetikleyici, tablo veya Görünüm geçerli veritabanında nitelenmiş ya da nitelenmemiş adı. objectise nvarchar(776), hiçbir varsayılan ile. Eğer object saklı yordam adı veya tetikleyici, saklı yordam veya tetikleyiciyi recompiled çalıştırıldığı bir sonraki açışınızda. Eğer objectbir tablo adı veya görünüm, tüm saklı yordamlar veya tablo veya görünüm başvuru Tetikleyiciler recompiled onlar çalıştırılan bir sonraki açışınızda.
Dönüş Kodu Değerleri
0 (başarılı) veya sıfır olmayan bir sayı (hata)
Açıklamalar
sp_recompilebir nesneyi yalnızca geçerli veritabanında arar.
Ne zaman sadece derlenen saklı yordamları ve Tetikleyicileri tarafından kullanılan sorgular hale getirilmiştir. Dizin veya istatistikleri etkileyen diğer değişiklikler veritabanına yapıldıkça, derlenmiş saklı yordamları ve Tetikleyicileri verimlilik kaybına uğrayabilir. Saklı yordamları ve Tetikleyicileri tablo üzerinde hareket yeniden tarafından sorguları reoptimize.
[!NOT]
SQL ServerBunun için avantajlı olduğunda otomatik olarak saklı yordamları ve Tetikleyicileri yeniden derler.
İzinler
Belirtilen nesne üzerinde alter izni gerektirir.
Örnekler
Aşağıdaki örnek saklı yordamları ve Tetikleyicileri hareket neden Customeronlar çalıştırılan bir sonraki açışınızda recompiled tablo.
USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO
USE AdventureWorks2012;
GO
EXEC sp_recompile N'Sales.Customer';
GO