Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Bu makalede SQL Server Sorgu Deposu'nun yönetimi ve çevresindeki özellikler özetlenmektedir.
- Sorgu Deposu ile yapılandırma ve yönetme hakkında daha fazla bilgi için bkz. Sorgu Deposukullanarak performansı izleme.
Not
SQL Server 2022'de (16.x), performans geçmişini daha iyi izlemeye, sorgu planıyla ilgili sorunları gidermeye ve yeni sorgu işlemcisi özelliklerini etkinleştirmeye yardımcı olmak için Sorgu Deposu artık yeni oluşturulan tüm SQL Server veritabanları için varsayılan olarak etkindir.
Azure SQL Veritabanı'nda Sorgu Deposu varsayılanları
Bu bölümde, Azure SQL Veritabanı'nda Sorgu Deposu'nun ve bağımlı özelliklerin güvenilir bir şekilde çalışmasını sağlamak için tasarlanmış en iyi yapılandırma varsayılanları açıklanmaktadır. Varsayılan yapılandırma, KAPALI/READ_ONLY durumlarında harcanan en az zaman olan sürekli veri toplama için iyileştirilmiştir. Kullanılabilir tüm Sorgu Deposu seçenekleri hakkında daha fazla bilgi için bkz. ALTER DATABASE SET seçenekleri (Transact-SQL).
| Konfigürasyon | Açıklama | Varsayılan | Yorum |
|---|---|---|---|
| MAX_STORAGE_SIZE_MB | Sorgu Deposunun müşteri veritabanında alabileceği veri alanı sınırını belirtir | SQL Server 2019 öncesi 100 (15.x) SQL Server 2019 (15.x) ile başlayan 1000 |
Yeni veritabanları için zorunlu hale getirildi |
| ARALIK_UZUNLUĞU_DAKİKA | Sorgu planları için toplanan çalışma zamanı istatistiklerinin toplandığı ve kalıcı olduğu zaman penceresinin boyutunu tanımlar. Her etkin sorgu planında bu yapılandırmayla tanımlanan bir süre için en fazla bir satır vardır | 60 | Yeni veritabanları için zorunlu kılındı |
| BAYAT_SORGU_EŞİK_GÜNLER | Kalıcı çalışma zamanı istatistiklerinin ve etkin olmayan sorguların saklama süresini denetleyan zamana dayalı temizleme ilkesi | 30 | Önceki varsayılana sahip veritabanları ve yeni veritabanları için uygulanmaktadır (367) |
| BOYUT_TABANLI_TEMIZLEME_MODU | Sorgu Deposu veri boyutu sınıra yaklaştığında otomatik veri temizlemenin yapılıp yapılmayacağını belirtir | OTOMATİK | Tüm veritabanları için zorunlu kılındı |
| SORGU YAKALAMA MODU | Tüm sorguların mı yoksa yalnızca bir sorgu alt kümesinin mi izlendiğini belirtir | OTOMATİK | Tüm veritabanları için zorunlu kılındı |
| VERİ BOŞALTMA ARALIĞI SANIYELER | Yakalanan çalışma zamanı istatistiklerinin diske boşaltmadan önce bellekte tutulacak en uzun süreyi belirtir | 900 | Yeni veritabanları için zorunlu kılındı |
Önemli
Bu varsayılanlar, Azure SQL Veritabanı'nda Sorgu Deposu etkinleştirmesinin son aşamasında otomatik olarak uygulanır. Etkinleştirildikten sonra Azure SQL Veritabanı, birincil iş yükünü veya Sorgu Deposu'nun güvenilir işlemlerini olumsuz etkilemediği sürece müşteriler tarafından ayarlanan yapılandırma değerlerini değiştirmez.
Not
Sorgu Deposu, Azure SQL Veritabanı tek veritabanında ve Elastik Havuz'da devre dışı bırakılamaz.
ALTER DATABASE [database] SET QUERY_STORE = OFF yürütülürken uyarı 'QUERY_STORE=OFF' is not supported in this version of SQL Server. döndürülür
Varsayılan ayarlarınızı korumak istiyorsanız, yapılandırmayı önceki duruma döndürmek için ALTER DATABASE komutunu, Sorgu Deposu seçenekleri ile birlikte kullanın. En iyi yapılandırma parametrelerini seçmeyi öğrenmek için Sorgu Deposu ile En İyi Yöntemler'e göz atın.
En uygun Sorgu Deposu Yakalama Modunu ayarlama
Sorgu Deposu'nda en uygun verileri tutun. Aşağıdaki tabloda her Sorgu Deposu Yakalama Modu için tipik senaryolar açıklanmaktadır:
| Sorgu Deposu Yakalama Modu | Senaryo |
|---|---|
| Tüm | İş yükünüzü tüm sorguların şekilleri, yürütme sıklıkları ve diğer istatistikler açısından kapsamlı bir şekilde analiz edin. İş yükünüzdeki yeni sorguları belirleyin. Geçici sorguların kullanıcı veya otomatik parametreleme fırsatlarını tanımlamak için kullanılıp kullanılmadiğini algılayın. Not: Bu, SQL Server 2016 (13.x) ve SQL Server 2017 'de (14.x) varsayılan yakalama modudur. |
| Otomatik | Dikkatinizi ilgili ve eyleme dönüştürülebilir sorgulara odaklayın. Düzenli olarak yürütülen veya önemli kaynak tüketimi olan sorgular buna örnek olarak verilmiştir. Not: SQL Server 2019 (15.x) ve sonraki sürümlerinde bu varsayılan yakalama modudur. |
| Yok | Çalışma zamanında izlemek istediğiniz sorgu kümesini zaten yakaladınız ve diğer sorguların ortaya koyabileceği dikkat dağıtıcı öğeleri ortadan kaldırmak istiyorsunuz. Hiçbiri, test ve karşılaştırma ortamları için uygun değildir. Hiçbiri, uygulama iş yüklerini izlemek üzere yapılandırılmış Sorgu Deposu yapılandırmasını gönderen yazılım satıcıları için de uygun değildir. Önemli yeni sorguları izleme ve iyileştirme fırsatını kaçırabileceğiniz için hiçbiri dikkatli kullanılmamalıdır. Bunu gerektiren belirli bir senaryonuz yoksa None kullanmaktan kaçının. |
| özel | SQL Server 2019 (15.x), ALTER DATABASE ... SET QUERY_STORE komutu altında özel bir yakalama modu kullanıma sunulmuştur. Otomatik varsayılan ve önerilendir; ancak Sorgu Deposu'nun oluşturabileceği ek yük konusunda hala bir endişe varsa, veritabanı yöneticileri Sorgu Deposu yakalama davranışını daha fazla ayarlamak için özel yakalama politikalarını kullanabilir. Daha fazla bilgi ve öneri için bu makalenin devamında Özel yakalama ilkelerine bakın. Bu söz dizimi hakkında daha fazla bilgi için bkz. ALTER DATABASE SET Options. |
Not
Sorgu Deposu Yakalama Modu Tüm, Otomatikveya Özelolarak ayarlandığında, imleçler, saklı yordamlar içindeki sorgular ve yerel olarak derlenmiş sorgular her zaman yakalanır. Yerel olarak derlenmiş sorguları yakalamak için sys.sp_xtp_control_query_exec_statskullanarak sorgu başına istatistiklerin toplanmasını etkinleştirin.
Sorgu Deposu'nda en uygun verileri tutma
Sorgu Deposu'nı yalnızca ilgili verileri içerecek şekilde yapılandırın, böylece sürekli çalışır ve normal iş yükünüz üzerinde en az etkiyle harika bir sorun giderme deneyimi sağlar.
Aşağıdaki tablo en iyi uygulamaları içerir.
| En iyi yöntem | Ayar |
|---|---|
| Korunan geçmiş verileri sınırlayın. | Otomatik temizlemeyi etkinleştirmek için zamana bağlı ilkeyi yapılandırın. |
| İlgisiz sorguları filtreleyin. | Sorgu Deposu Yakalama Modu'u Otomatikolarak yapılandırın. |
| Boyut üst sınırına ulaşıldığında daha az ilgili sorguları silin. | Boyut tabanlı temizleme ilkesini etkinleştirin. |
Özel yakalama ilkeleri
ÖZEL Sorgu Deposu Yakalama Modu etkinleştirildiğinde, belirli bir sunucudaki veri toplamaya ince ayar yapmak için yeni bir Sorgu Deposu yakalama ilkesi ayarı altında ek Sorgu Deposu yapılandırmaları kullanılabilir.
Yeni özel ayarlar, iç yakalama ilkesi zaman eşiği sırasında ne olacağını tanımlar. Bu, yapılandırılabilir koşulların değerlendirildiği ve varsa sorgunun Sorgu Deposu tarafından yakalanmaya uygun olduğu bir zaman sınırıdır.
Sorgu Deposu Yakalama Modu Sorgu Deposu için sorgu yakalama ilkesini belirtir.
- Tüm: Tüm sorguları yakalar. Bu seçenek SQL Server 2016 (13.x) ve SQL Server 2017'de (14.x) varsayılan seçenektir.
- Otomatik: Seyrek sorgular ve önemsiz derleme ve yürütme süresi olan sorgular yoksayılır. Yürütme sayısı, derleme ve çalışma zamanı süresi eşikleri dahili olarak belirlenir. SQL Server 2019 (15.x) ile başlayarak bu varsayılan seçenektir.
- Hiçbiri: Sorgu Deposu yeni sorguları yakalamayı durdurur.
- Özel: Ek denetime ve veri toplama ilkesinde ince ayar yapma özelliğine izin verir. Yeni özel ayarlar, iç yakalama ilkesi zaman eşiği sırasında ne olacağını tanımlar. Bu, yapılandırılabilir koşulların değerlendirildiği ve varsa sorgunun Sorgu Deposu tarafından yakalanmaya uygun olduğu bir zaman sınırıdır.
Ortamınız için uygun bir özel yakalama ilkesinin ayarlanması aşağıdaki durumlarda dikkate alınmalıdır:
- Veritabanı çok büyük.
- Veritabanında çok sayıda benzersiz, geçici sorgu vardır.
- Veritabanının belirli boyut veya büyüme sınırlamaları vardır.
- SSMS
- T-SQL
SQL Server Management Studio'nun (SSMS) en son sürümünü indirme
Management Studio'da geçerli ayarları görüntülemek için:
- SQL Server Management Studio Nesne Gezgini'nde veritabanına sağ tıklayın.
- Özellikleröğesini seçin.
- sorgu deposu seçin. Sorgu Deposu sayfasında, İşlem Modu (İstenen)'nın "okuma yazma"olduğunu doğrulayın.
- Sorgu Deposu Yakalama Modu'Özelolarak ayarlayın.
- Sorgu Deposu Yakalama İlkesi altındaki dört yakalama ilkesi alanının artık etkinleştirildiğini ve yapılandırılabilir olduğunu unutmayın.
Örnek özel yakalama ilkeleri
Aşağıdaki örnek, QUERY_CAPTURE_MODE AUTO olarak ayarlar ve özel yakalama modunu ayarlar. Aşağıdakilerin her biri özel yakalama ilkelerini SQL Server 2022'deki (16.x) varsayılan değerine ayarlar. Yakalanan sorgu sayısını azaltmak ve bu nedenle Sorgu Deposu'nun disk üzerindeki ayak izini azaltmak için bu değerleri ayarlamayı göz önünde bulundurun. Bu değerlerin küçük artışlarla aşamalı olarak değiştirilmesi önerilir.
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1000,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Aşağıdaki örnek sorgu, EXECUTION_COUNT ve TOTAL_COMPILE_CPU_TIME_MSiçin varsayılan ayarları geçersiz kılan bir özel yakalama ilkesi kullanmak üzere var olan sorgu deposunu değiştirir.
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE = ON
(
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
EXECUTION_COUNT = 100,
TOTAL_COMPILE_CPU_TIME_MS = 10000
)
);
Sorgu Deposu maksimum boyutu
Sql Server 2019'dan (15.x) başlayarak Sorgu Deposu'nun varsayılan en büyük boyut değeri 1000 MB'tır. Önceki sürümlerde varsayılan değer 100 MB'tı. Çok sayıda benzersiz sorgu planına sahip meşgul bir veritabanında Sorgu Deposu'nun boyut üst sınırını artırmak uygundur. Yakalama ilkesinin ayarlanması (önceki bölüme bakın), Sorgu Deposu'nun disk içi boyutunu sınırlamak ve Sorgu Deposu'nun READ_ONLY moduna girmesini önlemek için daha önemli bir noktadır. Sorgu Deposu sorguları, yürütme planlarını ve istatistikleri toplasa da, veritabanındaki boyutu bu sınıra ulaşılana kadar artar. Bu durumda Sorgu Deposu, işlem modunu otomatik olarak READ_ONLY olarak değiştirir ve yeni veri toplamayı durdurur; bu da performans analizinizin artık doğru olmadığı anlamına gelir.
- SQL Server ve Azure SQL Yönetilen Örneği'nde
MAX_STORAGE_SIZE_MBsınırı sıkı bir şekilde uygulanmaz. - Azure SQL Veritabanı'nda izin verilen en fazla
MAX_STORAGE_SIZE_MBdeğeri 10.240 MB'tır.
Depolama boyutu yalnızca Sorgu Deposu diske veri yazdığında denetlenmektedir. Bu aralık, DATA_FLUSH_INTERVAL_SECONDS seçeneği veya Management Studio Sorgu Deposu iletişim kutusundaki Veri Temizleme Aralığıseçeneği tarafından ayarlanır.
- Aralık varsayılan değeri 900 saniyedir (veya 15 dakika).
- Sorgu Deposu depolama boyutu denetimleri arasındaki
MAX_STORAGE_SIZE_MBsınırını aştıysa salt okunur moda geçer. -
SIZE_BASED_CLEANUP_MODEetkinleştirilirse,MAX_STORAGE_SIZE_MBsınırını zorlamak için temizleme mekanizması da tetiklenir.- Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak READ_WRITE moduna geri döner.
Daha fazla bilgi için bakınız ALTER DATABASE SET OPTION MAX_STORAGE_SIZE_MB.
Veri Boşaltma Aralığı (dakika)
Veri Temizleme Aralığı, toplanan çalışma zamanı istatistikleri diskte kalıcı hale gelmeden önceki sıklığı tanımlar. SQL Server Management Studio'da değer dakika cinsindendir, ancak Transact-SQL saniye cinsinden ifade edilir. Varsayılan değer 15 dakikadır (900 saniye).
- Veri temizleme aralığının artırılması Genel Sorgu Deposu depolama G/Ç etkisini azaltabilir, ancak depolama G/Ç iş yükünün disk kullanımına daha az ama daha ağır etki eden daha daha yüksekneden olur. İş yükünüz çok fazla sayıda farklı sorgu ve plan oluşturmuyorsa veya veritabanını kapatmadan önce verileri kalıcı hale getirmek için daha uzun süre dayanabiliyorsanız daha yüksek bir değer kullanmayı göz önünde bulundurun.
- Veri temizleme aralığını azaltmak, kapatma, güç kaybı veya yük devretme durumunda kaybolacak Sorgu Deposu verilerinin miktarını azaltır. Ayrıca, diske daha sık ama daha az veriyle yazarak, Sorgu Deposu'nun depolama G/Ç üzerindeki etkisini de yumuşatabilir.
Not
İzleme bayrağı 7745 kullanıldığında, yük devretme veya kapatma komutu olması durumunda Sorgu Deposu verilerinin diske yazılması engellenir. Daha fazla bilgi için bkz. sorgu deposunu görev açısından kritik sunucularda kullanma.
Sorgu Deposu varsayılanlarını değiştirme
sorgu deposunu iş yükünüz ve performans sorunlarını giderme gereksinimlerinize göre yapılandırın. Varsayılan parametreler başlamak için yeterlidir, ancak Sorgu Deposu'un zaman içinde nasıl davrandığını izlemeli ve yapılandırmasını buna göre ayarlamalısınız.
Sorgu Deposu geçerli ayarlarını görüntüleme
SQL Server Management Studio (SSMS) veya T-SQL'de geçerli Sorgu Deposu ayarlarını görüntüleyin.
- SSMS
- T-SQL
SQL Server Management Studio'nun (SSMS) en son sürümünü indirme
Management Studio'da geçerli ayarları görüntülemek için:
- SQL Server Management Studio Nesne Gezgini'nde veritabanına sağ tıklayın.
- Özellikleröğesini seçin.
- Sorgu Deposuseçin.
Aşağıdaki betik, En Büyük Boyut (MB)için yeni bir değer ayarlar:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);
Veri Temizleme Aralığıiçin farklı bir değer ayarlamak üzere SQL Server Management Studio veya Transact-SQL kullanın:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = 900);
İstatistik Toplama Aralığı: Toplanan çalışma zamanı istatistiği için dakika cinsinden ifade edilen ayrıntı düzeyini tanımlar. Varsayılan değer 60 dakikadır. Sorunları algılamak ve azaltmak için daha ince ayrıntı düzeyine veya daha az zamana ihtiyacınız varsa daha düşük bir değer kullanmayı göz önünde bulundurun. Değerin Sorgu Deposu verilerinin boyutunu doğrudan etkilediğini unutmayın. İstatistik Toplama Aralığıiçin farklı bir değer ayarlamak üzere SQL Server Management Studio veya Transact-SQL kullanın:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (INTERVAL_LENGTH_MINUTES = 60);
Eski Sorgu Eşiği (Gün): Kalıcı çalışma zamanı istatistiklerinin ve etkin olmayan sorguların saklama süresini gün cinsinden ifade eden ve denetleyen zamana dayalı bir temizleme politikası. Varsayılan olarak, Sorgu Deposu verileri 30 gün boyunca saklayacak şekilde yapılandırılır ve bu senaryonuz için gereksiz yere uzun olabilir.
Kullanmayı planlamadığınız geçmiş verileri saklamaktan kaçının. Bu uygulama, salt okunur durumdaki değişiklikleri azaltır. Sorgu Deposu verilerinin boyutu ve sorunu algılama ve azaltma süresi daha öngörülebilir olacaktır. Zamana dayalı temizleme ilkesini yapılandırmak için Management Studio'yu veya aşağıdaki betiği kullanın:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 90));
Boyut Tabanlı Temizleme Modu: Sorgu Deposu veri boyutu sınıra yaklaştığında otomatik veri temizlemenin yapılıp yapılmayacağını belirtir. Sorgu Deposu'nda her zaman okuma-yazma modunda çalıştığından ve en son verileri topladığından emin olmak için boyut tabanlı temizlemeyi etkinleştirin. Yoğun iş yükleri altında Sorgu Deposu temizleme işleminin veri boyutunu tutarlı bir şekilde sınır altında tutma garantisi yoktur. Otomatik veri temizleme işlemi geride kalarak geçici olarak salt okunur moda geçebilir.
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);
Sorgu Deposu Yakalama Modu: Sorgu Deposu için sorgu yakalama ilkesini belirtir.
- Tüm: Tüm sorguları yakalar. Bu seçenek SQL Server 2016 (13.x) ve SQL Server 2017'de (14.x) varsayılan seçenektir.
- Otomatik: Seyrek sorgular ve önemsiz derleme ve yürütme süresi olan sorgular yoksayılır. Yürütme sayısı, derleme ve çalışma zamanı süresi eşikleri dahili olarak belirlenir. SQL Server 2019 (15.x) ile başlayarak bu varsayılan seçenektir.
- Hiçbiri: Sorgu Deposu yeni sorguları yakalamayı durdurur.
- Özel: Ek denetime ve veri toplama ilkesinde ince ayar yapma özelliğine izin verir. Yeni özel ayarlar, iç yakalama ilkesi zaman eşiği sırasında ne olacağını tanımlar. Bu, yapılandırılabilir koşulların değerlendirildiği ve varsa sorgunun Sorgu Deposu tarafından yakalanmaya uygun olduğu bir zaman sınırıdır.
Önemli
Sorgu Deposu Yakalama Modu Tümü, Otomatikveya Özelolarak ayarlandığında, imleçler, saklı yordamlar içindeki sorgular ve yerel olarak derlenmiş sorgular her zaman yakalanır. Yerel olarak derlenmiş sorguları yakalamak için sys.sp_xtp_control_query_exec_statskullanarak sorgu başına istatistiklerin toplanmasını etkinleştirin.
Aşağıdaki betik QUERY_CAPTURE_MODE AUTO olarak ayarlar:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);
Örnekler
Aşağıdaki örnek QUERY_CAPTURE_MODE AUTO olarak ayarlar ve SQL Server 2016'da (13.x) önerilen diğer seçenekleri ayarlar:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 1000,
INTERVAL_LENGTH_MINUTES = 60
);
Aşağıdaki örnek QUERY_CAPTURE_MODE AUTO olarak ayarlar ve SQL Server 2017'de (14.x) önerilen diğer seçenekleri bekleme istatistiklerini içerecek şekilde ayarlar:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 1000,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON
);
Aşağıdaki örnek, ÖZEL yakalama ilkesini yeni varsayılan AUTO yakalama modu yerine SQL Server 2019 (15.x) varsayılanlarına ayarlar. Özel yakalama ilkesi seçenekleri ve varsayılanları hakkında daha fazla bilgi için bkz. <query_capture_policy_option_list>.
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1000,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Sorgu Deposu bakımı
Bu bölümde Sorgu Deposu özelliğinin kendisini yönetmeyle ilgili bazı yönergeler sağlanmaktadır.
Sorgu Deposu durumu
Sorgu Deposu, verilerini kullanıcı veritabanı içinde depolar ve bu nedenle boyut sınırı vardır (MAX_STORAGE_SIZE_MBile yapılandırılmıştır). Sorgu Deposu'ndaki veriler bu sınıra ulaştığında, Sorgu Deposu otomatik olarak okuma-yazma durumundan salt okunura dönüşür ve yeni veri toplamayı durdurur.
Sorgu Mağazası'nın şu anda etkin olup olmadığını ve çalışma zamanı istatistiklerini toplayıp toplamadığını belirlemek için sys.database_query_store_options sorgusunu çalıştırın.
SELECT actual_state, actual_state_desc, readonly_reason,
current_storage_size_mb, max_storage_size_mb
FROM sys.database_query_store_options;
Sorgu Deposu durumu actual_state sütunu tarafından belirlenir. İstenen durumdan farklıysa, readonly_reason sütunu size daha fazla bilgi verebilir. Sorgu Deposu boyutu kotayı aştığında, özellik read_only moduna geçer ve bir neden sağlar. Nedenlerle ilgili bilgi için bkz. sys.database_query_store_options.
"Sorgu Deposu seçeneklerini al"
Sorgu Deposu durumu hakkında ayrıntılı bilgi edinmek için kullanıcı veritabanında aşağıdaki komutu yürütebilirsiniz.
SELECT * FROM sys.database_query_store_options;
Sorgu Deposu aralığını ayarlama
Sorgu çalışma zamanı istatistiklerini toplama aralığını geçersiz kılabilirsiniz (varsayılan değer 60 dakikadır). Aralık için yeni değer, sys.database_query_store_options görünüm aracılığıyla kullanıma sunulur.
ALTER DATABASE <database_name>
SET QUERY_STORE (INTERVAL_LENGTH_MINUTES = 15);
INTERVAL_LENGTH_MINUTESiçin rastgele değerlere izin verilmez. Şu aralıklardan birini kullanın: 1, 5, 10, 15, 30, 60 veya 1440 dakika.
Not
Azure Synapse Analytics için, bu bölümde gösterildiği gibi Sorgu Deposu yapılandırma seçeneklerini özelleştirme desteklenmez.
Sorgu Mağazası alan kullanımı
Geçerli Sorgu Deposu boyutunu denetlemek ve sınırlamak için kullanıcı veritabanında aşağıdaki deyimi yürütür.
SELECT current_storage_size_mb, max_storage_size_mb
FROM sys.database_query_store_options;
Sorgu Deposu depolama alanı doluysa, depolama alanını genişletmek için aşağıdaki deyimi kullanın.
ALTER DATABASE <database_name>
SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <new_size>);
Sorgu Deposu seçeneklerini ayarlama
Tek bir ALTER DATABASE deyimiyle aynı anda birden çok Sorgu Deposu seçeneği ayarlayabilirsiniz.
ALTER DATABASE <database name>
SET QUERY_STORE (
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30),
DATA_FLUSH_INTERVAL_SECONDS = 3000,
MAX_STORAGE_SIZE_MB = 500,
INTERVAL_LENGTH_MINUTES = 15,
SIZE_BASED_CLEANUP_MODE = AUTO,
QUERY_CAPTURE_MODE = AUTO,
MAX_PLANS_PER_QUERY = 1000,
WAIT_STATS_CAPTURE_MODE = ON
);
Yapılandırma seçeneklerinin tam listesi için bkz. ALTER DATABASE SET Options (Transact-SQL) .
Alanı temizleme
Sorgu Deposu iç tabloları veritabanı oluşturma sırasında PRIMARY dosya grubunda oluşturulur ve bu yapılandırma daha sonra değiştirilemez. Alanınız tükeniyorsa, aşağıdaki deyimi kullanarak eski Sorgu Deposu verilerini temizlemek isteyebilirsiniz.
ALTER DATABASE <db_name> SET QUERY_STORE CLEAR;
Alternatif olarak, sorgu iyileştirmeleri ve plan analizi için daha az ilgili olduğundan ancak aynı kadar alan kapladığından yalnızca geçici sorgu verilerini temizlemek isteyebilirsiniz.
Azure Synapse Analytics'te Sorgu Deposu'nu temizlemek mümkün değildir. Veriler son yedi gün boyunca otomatik olarak korunur.
Geçici sorguları silme
Böylece Sorgu Deposu'ndan geçici ve iç sorgular temizlenir, böylece Sorgu Deposu'nun alanı tükenmiyor ve gerçekten izlememiz gereken sorguları kaldırıyoruz.
SET NOCOUNT ON
-- This purges adhoc and internal queries from
-- the Query Store in the current database
-- so that the Query Store does not run out of space
-- and remove queries we really need to track
DECLARE @id int;
DECLARE adhoc_queries_cursor CURSOR
FOR
SELECT q.query_id
FROM sys.query_store_query_text AS qt
JOIN sys.query_store_query AS q
ON q.query_text_id = qt.query_text_id
JOIN sys.query_store_plan AS p
ON p.query_id = q.query_id
JOIN sys.query_store_runtime_stats AS rs
ON rs.plan_id = p.plan_id
WHERE q.is_internal_query = 1 -- is it an internal query then we dont care to keep track of it
OR q.object_id = 0 -- if it does not have a valid object_id then it is an adhoc query and we don't care about keeping track of it
GROUP BY q.query_id
HAVING MAX(rs.last_execution_time) < DATEADD (minute, -5, GETUTCDATE()) -- if it has been more than 5 minutes since the adhoc query ran
ORDER BY q.query_id;
OPEN adhoc_queries_cursor ;
FETCH NEXT FROM adhoc_queries_cursor INTO @id;
WHILE @@fetch_status = 0
BEGIN
PRINT 'EXEC sp_query_store_remove_query ' + str(@id);
EXEC sp_query_store_remove_query @id;
FETCH NEXT FROM adhoc_queries_cursor INTO @id;
END
CLOSE adhoc_queries_cursor;
DEALLOCATE adhoc_queries_cursor;
Artık istemediğiniz verileri temizlemek için kendi yordamınızı farklı mantıklarla tanımlayabilirsiniz.
Önceki örnekte, gereksiz verileri kaldırmak için sp_query_store_remove_query genişletilmiş saklı yordamı kullanılır. Ayrıca şunları da yapabilirsiniz:
- Belirli bir plana ilişkin çalışma zamanı istatistiklerini temizlemek için
sp_query_store_reset_exec_statskullanın. - Tek bir planı kaldırmak için
sp_query_store_remove_plankullanın.
İlgili içerik
- ALTER DATABASE SET seçeneklerini (Transact-SQL)
- Sorgu Deposu katalog görünümleri (Transact-SQL)
- Sorgu Deposu saklı yordamları (Transact-SQL)
- OLTP ile Sorgu Deposu'nun In-Memory kullanımı
- Sorgu işleme mimarisi kılavuzu
- Sorgu Deposu İpuçları
- Sorgu Deposu kullanarak performansı izleme
- Sorgu Deposu ile performansı ayarlama
- Azure Synapse Analytics'te tarihsel sorguların depolanması ve analizi