Msdb'de Query Store'u etkinleştirmenin ne yararı var?


9

SQL sistem veritabanının (master, model, msdb, tempdb) sorgu deposu yalnızca msdb'de kullanılabilir. Baktım ve msdb sorgu deposu hakkında herhangi bir belge bulamıyorum.

GUI'de göremeseniz de SQL 2016 örneğinizde doğrulanabilir

Sorgu Deposunu Doğrula kapalı

USE msdb
SELECT * FROM sys.database_query_store_options; 

Sorgu Deposunu aç

USE [master]
GO
ALTER DATABASE msdb SET QUERY_STORE = ON
GO
ALTER DATABASE msdb SET QUERY_STORE (OPERATION_MODE = READ_WRITE
, INTERVAL_LENGTH_MINUTES = 30
, MAX_STORAGE_SIZE_MB = 1000
, QUERY_CAPTURE_MODE = AUTO)
GO

Sorgu Deposunu Doğrula açık

USE msdb
SELECT * FROM sys.database_query_store_options; 

Tüm sistem veritabanından neden msdb, Query Store'u kullanma seçeneğine sahip tek kişi ve hangi değeri ekliyor?

-- Stop Query Store
USE [master]
GO
ALTER DATABASE msdb SET QUERY_STORE = OFF
GO

James, lütfen [model]"izin verilmiyor" listesine dahil edilmeyle ilgili cevap güncellememe bakın .
Solomon Rutzky

@SolomonRutzky Anlıyorum, çok ilginç. Cevabınızın altında yorumlar var, cevabınızı genişletmeye devam etmekten çekinmeyin.
James Jenkins

Yanıtlar:


7

Microsoft'un bir özelliği etkinleştirmesi, herkes için yararlı olacağı anlamına gelmez. Bazı özelliklerin kullanıldığı sistemler için MSDB'de depolanan bilgilere güvenmek anlamına gelebilir. Bu durumlarda Sorgu Deposu yararlı olabilir.

MSDB veritabanı nesnelerinin kullanımı ve ayarlanması hakkında birkaç makale.

msdb Çevrimiçi kitaplardan veritabanı .

MSDB Performans Ayarlama Geoff N. Hiten

Tim Radney tarafından MSDB'de Bakımın Önemi :

Msdb'de dizinleri optimize etmek, kullanıcı veritabanlarınız kadar önemlidir. Çoğu zaman kullanıcı veritabanlarını optimize eden fakat sistem veritabanlarını optimize etmeyen istemciler buldum. Msdb veritabanı SQL Server Agent, Log Shipping, Service Broker, SSIS, yedekleme ve geri yükleme ve diğer işlemler tarafından yoğun bir şekilde kullanıldığından, dizinler oldukça parçalanabilir. Dizin optimizasyon işlerinizin sistem veritabanlarınızı veya en azından msdb'yi de içerdiğinden emin olun. Ben indeks optimizasyonları msdb içinde çok parçalı dizinlerden alan birkaç gigabayt yer serbest gördüm.

Sorgu deposunun dizin oluşturma stratejinizi en iyi duruma getirmede ve MSDB'de depolanan bilgilerin bir kısmını en iyi şekilde sorgulama / toplama / temizleme konusunda nasıl yardımcı olabileceğini görebiliyorum.


1
[msdb]Alıntıda belirtilen özellikleri ek olarak, "diğer süreçler" gibi şeyler içerir: dbmail, Merkezi Yönetim Sunucusu (CMS) hizmetleri (en çok paylaşılan Kayıtlı Sunucular listeleri), bence söz konusu bağlantılı yazı yorumlarda biri İlke Tabanlı Yönetim (PBM) ve bence Sunucu Denetimleri (en azından tanımlar, ama bunu doğrulamamıştım).
Solomon Rutzky

5

@SqlWorldWide sorunun "neden [msdb]" bölümünü yanıtladı, bu yüzden burada çoğaltmayacağım. Ama cevap "neden olmasın [master], [model], [tempdb]" sorunun parçası:

  • [tempdb]geçici depolamadır ve doğası gereği otomatik optimizasyondan veya tarihsel analiz sağlama yeteneğinden hiçbir şekilde fayda görmeyecektir. Sorgu Deposu Saklı Yordamlardaki yürütme istatistiklerini izlerse, Saklı Yordamlar başka bir yerde olduğunda bu yardımcı olmaz. Geçici Saklı Yordamlar oluşturmak mümkün olsa da, adlarının benzer adları birden çok oturumda ayırmak için benzersiz bir karma kod içerdiği göz önüne alındığında, yerel geçici Saklı Prokslar bundan faydalanmayacaktır. Ve geçici geçici Depolanmış Prokslar, geçici nitelikleri göz önüne alındığında, oturumlar arasında tutarlı bir ada sahip olsalar da, oturumlar boyunca aynı adda (aynı anda olmayacağını varsayalım) küresel geçici Depolanmış Proksların aynı koda sahip olacağını varsaymanın bir yolu yoktur, ve dolayısıyla anlamlı /ilişkili istatistikler.

  • [model]yeni veritabanları oluşturma şablonu ( [tempdb]SQL Server örneği her başlatıldığında / yeniden başlatıldığında yeniden oluşturulur). Sorgular buradan yürütülmez. Ancak, Query Store'un burada etkinleştirilmesine izin vermek mantıklı olabilir , böylece yeni DB'ler oluştururken varsayılan olarak AÇIK olur. Ancak hiç Ama bu ancak, bu sorgu Mağaza etkin olması demek olur [tempdb]ve bu sadece saçma (doğrudan yukarıdaki noktaya bakın) 'dir.

    GÜNCELLEME:
    Woah, Nelly! Sadece buna yol açan ilk soruyu tekrar okudum ve garip bir şey fark ettim: [master]ve için sadece hata mesajı vardı [tempdb]; için bir hata bildirilmedi [model]. OP sadece soruya kopyalarken bu hata mesajını dışarıda bıraktı, bu yüzden kendim görmek için SQL Server 2016 SP1-CU7-GDR (13.0.4466.4) üzerinde aşağıdakileri çalıştırdım:

    ALTER DATABASE [model] SET QUERY_STORE = ON; -- completes successfully!
    
    -- Restart instance to force recreation of [tempdb];
    
    CREATE DATABASE [IsQueryStoreEnabledByDefault];
    
    SELECT * FROM sys.databases WHERE [is_query_store_on] = 1;
    
    DROP DATABASE [IsQueryStoreEnabledByDefault];
    

    Peki sonuçlar? [model]ve [IsQueryStoreEnabledByDefault]iade, ancak [tempdb]olduğu değil sonuçlarında! Yani, ek bir yandan "ancak" ilk iki s, öyle görünüyor [model] olabilir Sorgu Mağaza etkin olmalı ki: a) varsayılan Sorgu Saklı etkinleştirilmesini (evet, ben bir kelime bile yeni DBS oluşturulan için ;-) kontrol b oluyor) [tempdb]hizmet başlangıcında yeniden oluşturma nedeniyle yok sayılır (bu nedenle, bu, açmak için bir arka kapı değildir [tempdb]).  

  • [master]ana sistem veritabanıdır ve burada çalışan kodunuz olmamalıdır. Ayrıca, burada bulunan ve sıklıkla kullanılan Saklı Yordamlar, optimizasyondan yararlanamaz veya çağrıldıkları Kullanıcı Veritabanı bağlamında yürütülür (yani, sistemden başlayarak kaydedilen procs sp_, hepsinde "göründükleri" özel bir durumdur DB'ler - tam olarak kalifiye olmaları gerekmez ve her DB'de varmış [master]..gibi yürütülmeleri gerekmez ) ve muhtemelen çağrıldıkları Kullanıcı Veritabanlarında Sorgu Deposu tarafından yönetilirler.


USE model SELECT * FROM çalıştırdığınızda sys.database_query_store_options; Model Sorgu Deposu açık olarak ayarlandıktan sonra, açık olarak görüntülenmez. AMA> Yeni veritabanının açık olduğunu söylediğiniz gibi, benim durumumda günün erken saatlerinde vururken seçtiğim isteğe bağlı değişiklikleri kullandı. Bu nedenle, modeli kullanacaksanız, muhtemelen tüm Sorgu Deposu seçeneklerini aviod sürprizlerini tercihinize göre ayarlamak istersiniz.
James Jenkins
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.