ile hazırlanan SQL bir SQL Server veritabanı kullanan bir uygulama sorun gidermek ve çok sayıda sp_execute
çağrı görüyorum.Görünüm sp_prepare
sp_prepare
çağrılarını bulamıyorum.
Hazırlanan tüm SQL deyimlerini bellekte nasıl denetlersiniz?
ile hazırlanan SQL bir SQL Server veritabanı kullanan bir uygulama sorun gidermek ve çok sayıda sp_execute
çağrı görüyorum.Görünüm sp_prepare
sp_prepare
çağrılarını bulamıyorum.
Hazırlanan tüm SQL deyimlerini bellekte nasıl denetlersiniz?
yukarıda benim yorumum takibi, ben ilgili bağlantılar bir dizi bulundu:
How can I find out what command sp_execute is running (without using Profiler)
Microsoft belgelerine sahiptir ama belki zorlu bir ekleme şeyler birlikte (her zamanki gibi). Plan kolu biliniyorsa, bu kullanabilirsiniz:
sys.dm_exec_sql_text (Transact-SQL)
Bu
bir tablo değerli fonksiyondur. Derlenmiş (hazırlanmış) bir planın geçerli bir tanıtıcısı için nesne bağımlılıklarını almak için tablo değerli işlevlerden yararlanan a blog article here'u görebilirsiniz.SQL Server 2008 R2 Profiler'de sp_execute tarafından yürütülen gerçek SQL deyimlerini görmenin bir yolunu arıyordum.
Bunu yapmak için yeni bir izleme oluşturdum ve "Etkinlikler Seçimi" sekmesini tıklattım. "Tüm olayları göster" i seçtim ve Depolanmış Prosedürler> SP: StmtCompleted'i işaretledim. İzi çalıştırdıktan sonra, gerçek SQL ifadelerini görebildim.
Bu soruna da girdim. SQL Profiler izlemesi, SQL Profiler izinin çalışmaya başlamasından önce gerçekleştiği için sp_prepare
deyimini yakalamıyordu. sys.dm_exec_sql_text
belgesine dayanan çeşitli gönderiler, bu saklı yordamı sağlamak için doğru sql_handle
veya plan_handle
değerini bulamadığım için yardımcı olmadı.
, bir "SP: CacheHit" göreceksiniz ": başlatılıyor ... sp_executeRPC" deyimi satırı, yakın önbelleğe SQL deyimi içeren.
kullanmakta isteyip istemediğinizi Daha sonra yeniden ve SSMS tam SQL deyimi reexecute yapabilirsiniz:
exec sp_executesql @stmt=N'{statement from SP:CacheHit}',
@params=N'{parameter declaration from SP:CacheHit}',
@param1={value}, {...parameters from RPC:Starting sp_execute statement}
aslında sql profiler kullanıyor musunuz? – Rodrigo
Daha çok "sp_execute" çağrısına sahip olmak için [normal/istenen bir durum] (http://www.sql-server-performance.com/forum/threads/sp_prepare-and-sp_execute.14685/) olacaktır. izleme dosyaları 'sp_prepare' çağırır. Hazırlanmış tutamaçlara bağlanmış (parametreli) SQL'i bulmak için, "tutamaç" veya "sorgu planı" türlerinden oluşan sütunlar için SQL Server sistem tablolarının şemalarını incelerdim. – hardmath