Esnek PostgreSQL için Azure Veri Tabanı sunucuda sorgu deposu

Sorgu deposu, PostgreSQL için Azure Veri Tabanı esnek bir sunucuda bulunan ve zaman içinde sorgu performansını izlemenin bir yolunu sağlayan bir özelliktir. Sorgu deposu, en uzun süre çalışan ve yoğun kaynak kullanan sorguları hızla bulmanıza yardımcı olarak performans sorunlarının giderilmesini basitleştirir. Sorgu deposu sorguların ve çalışma zamanı istatistiklerinin geçmişini otomatik olarak yakalar ve bunları gözden geçirmeniz için saklar. Zamansal kullanım desenlerini görebilmeniz için verileri zamana göre dilimler. Tüm kullanıcılar, veritabanları ve sorgular için veriler, PostgreSQL için Azure Veri Tabanı esnek sunucusunda adlı azure_sys bir veritabanında depolanır.

Sorgu deposunu etkinleştirme

Sorgu deposu ek ücret ödemeden kullanılabilir. Bu bir kabul etme özelliğidir, bu nedenle bir sunucuda varsayılan olarak etkinleştirilmez. Belirli bir sunucudaki tüm veritabanları için genel olarak sorgu deposunu etkinleştirebilir veya devre dışı bırakabilirsiniz. Bunu veritabanı bazında açıp kapatamazsınız.

Önemli

Performans sorunlarına neden olduğu için Query Store’u Burstable fiyatlandırma katmanında etkinleştirmeyin.

Azure portalında sorgu deposunu etkinleştirme

  1. Azure portalında oturum açın ve PostgreSQL için Azure Veri Tabanı esnek sunucunuzu seçin.
  2. Menünün Ayarlar bölümünde Parametreler'i seçin.
  3. parametresini pg_qs.query_capture_mode arayın.
  4. En üst düzey sorguları mı yoksa iç içe sorguları mı (bir işlev veya yordam içinde yürütülen sorgular) izlemek istediğinize bağlı olarak değerini top veya allolarak ayarlayın ve Kaydet'i seçin. İlk veri toplu işleminin veritabanında kalıcı olması azure_sys için 20 dakikaya kadar izin verin.

Sorgu deposu bekleme örneklemesini etkinleştirme

  1. parametresini pgms_wait_sampling.query_capture_mode arayın.
  2. Değeri all olarak ayarlayın ve Kaydedin.

Sorgu deposundaki bilgiler

Sorgu deposu iki depodan oluşur:

  • Sorgu yürütme istatistikleri bilgilerini kalıcı hale getiren çalışma zamanı istatistikleri deposu.
  • Bekleme istatistikleri bilgilerini kalıcı hale getiren bir bekleme istatistikleri deposu.

Sorgu deposunu kullanmaya yönelik yaygın senaryolar şunlardır:

  • Belirli bir zaman penceresinde bir sorgunun kaç kez yürütüldü olduğunu belirleme.
  • Büyük varyasyonları görmek için zaman pencereleri arasında bir sorgunun ortalama yürütme süresini karşılaştırma.
  • Son birkaç saat içinde en uzun süre çalışan sorguları tanımlama.
  • Kaynakları bekleyen en üst N sorguları tanımlama.
  • Belirli bir sorgu için beklemelerin doğasını anlama.

Alan kullanımını en aza indirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit, yapılandırılabilir bir zaman penceresi üzerinde toplanır. Görünümleri kullanarak bu depolardaki bilgileri sorgulayabilirsiniz.

Sorgu deposu bilgilerine erişme

PostgreSQL için Azure Veri Tabanı esnek sunucu, sorgu deposu verilerini azure_sys veritabanında depolar. Aşağıdaki sorgu, sorgu deposunun kaydettiği sorgular hakkında bilgi verir:

SELECT * FROM  query_store.qs_view;

Bu sorgu, bekleyen istatistikler hakkında bilgi döndürür:

SELECT * FROM  query_store.pgms_wait_sampling_view;

Bekleme sorgularını bulun

Wait olay türleri, farklı bekleme olaylarını benzerliğe göre demetler halinde gruplandırmaktadır. Query Store bekleme olayı türünü, belirli bir bekleme olayı adını ve söz konusu sorguyu sağlar. Bu bekleme bilgilerini sorgu çalışma zamanı istatistikleriyle ilişkilendirdiğinizde, sorgu performansı özelliklerine nelerin katkıda bulunabileceğinizi daha iyi kavrarsınız.

Query Store bekleme istatistiklerini kullanarak iş yükünüzle ilgili daha fazla içgörü elde etmek için kullanabileceğiniz bazı örnekler aşağıda verilmiştir:

Gözlem Action
Yüksek kilit beklemeleri Etkilenen sorgular için sorgu metinlerini denetleyin ve hedef varlıkları belirleyin. Sık yürütülen ve süresi yüksek olan ve aynı varlığı değiştiren diğer sorgular için Query Store bakın. Bu sorguları tanımladıktan sonra eşzamanlılığı geliştirmek için uygulama mantığını değiştirmeyi veya daha az kısıtlayıcı bir yalıtım düzeyi kullanmayı göz önünde bulundurun.
Yüksek arabellek GÇ beklemeleri Sorgu Deposu'nda çok sayıda fiziksel okuma içeren sorguları bulun. Bunlar, G/Ç beklemesi yüksek sorgularla eşleşiyorsa, bu sorgular için fiziksel okuma sayısını azaltabilecek bazı dizinlerin oluşturulmasını önerip öneremeyeceğini görmek üzere otonom ayarlama özelliğini etkinleştirmeyi düşünün.
Yüksek bellek beklemeleri Sorgu Deposu'nda en çok bellek tüketen sorguları bulun. Bu sorgular büyük olasılıkla etkilenen sorguların daha fazla ilerlemesini geciktirmiştir.

Yapılandırma seçenekleri

Sorgu deposunu etkinleştirdiğinizde, verileri toplama pencerelerine kaydeder. Bu pencerelerin uzunluğu, varsayılan olarak 15 dakika olan pg_qs.interval_length_minutes parametresiyle belirlenir. Her pencere için sorgu deposu en fazla 500 ayrı sorgu depolar. Her sorgunun benzersizliğini ayırt eden öznitelikler ( user_id sorguyu yürüten kullanıcının tanımlayıcısı), db_id (sorgunun yürütüldiği bağlamda veritabanının tanımlayıcısı) ve query_id (sorguyu benzersiz olarak tanımlayan bir tamsayı değeridir). Yapılandırılan aralık boyunca ayrı sorguların sayısı 500'e ulaşırsa, sorgu deposu daha fazlasına yer açmak için kaydedilen sorguların 5% serbest bırakmaktadır. Önce serbest bırakılan sorgular, en az sayıda yürütülen sorgulardır.

Query Store parametrelerini yapılandırmak için aşağıdaki seçenekleri kullanın:

Parameter Açıklama Varsayılan Aralık
pg_qs.interval_length_minutes Sorgu deposu için dakika cinsinden yakalama aralığı. Veri kalıcılığının sıklığını tanımlar. 15 1 - 30
pg_qs.max_captured_queries Her yakalama aralığında kaydedilen tüm sorgular arasından sorgu deposunun kalıcı olarak sakladığı en yüksek sorgu sayısı. 500 100 - 500
pg_qs.max_plan_size Sorgu deposunun sorgu planı metninden kaydettiği bayt sayısı üst sınırı. Daha uzun planlar kısaltılır. 7500 100 - 10000
pg_qs.max_query_text_length Sorgu deposu tarafından kaydedilebilecek en fazla sorgu uzunluğu. Daha uzun sorgular kısaltılır. 6000 100 - 10000
pg_qs.parameters_capture_mode Sorgu konumsal parametrelerinin yakalanıp yakalanmayacağı ve ne zaman yakalanacağı. capture_parameterless_only capture_parameterless_only, capture_first_sample
pg_qs.query_capture_mode İzlenecek ifadeler. none none, top, all
pg_qs.retention_period_in_days Sorgu deposu için gün cinsinden saklama süresi aralığı. Eski veriler otomatik olarak silinir. 7 1 - 30
pg_qs.store_query_plans Sorgu deposuna sorgu planlarının kaydedilip kaydedilmeyeceği. off on, off
pg_qs.track_utility Sorgu deposu yardımcı program komutlarını izlemesi gerekip gerekmediği. on on, off

Uyarı

parametresinin pg_qs.max_query_text_length değerini değiştirirseniz, değişikliği yapmanızdan önce sorgunun yakaladığı tüm sorguların metni aynı query_id ve sql_query_textkullanmaya devam eder. Bu davranış, yeni değerin geçerli olmadığı izlenimini verebilir, ancak sorgu deposunun daha önce kaydetmediği sorgular için sorgu metninin yeni yapılandırılan maksimum uzunluğu kullandığını görürsünüz. Bu davranış tasarım gereğidir ve Görünümler ve işlevler'de açıklanmıştır. query_store.qs_reset yürütürseniz, her sorgu kimliği için yakaladığı metin de dahil olmak üzere sorgunun şimdiye kadar kaydettiği tüm bilgileri kaldırır. Bu sorgulardan herhangi biri yeniden yürütülürse, yakalanan metne yeni yapılandırılan maksimum uzunluk uygulanır.

Aşağıdaki seçenekler özellikle bekleme istatistikleri için geçerlidir:

Parameter Açıklama Varsayılan Aralık
pgms_wait_sampling.history_period Bekleme olaylarının örneklendiği milisaniye cinsinden sıklık. 100 1 - 600000
pgms_wait_sampling.query_capture_mode pgms_wait_sampling uzantısının takip etmesi gereken ifadeler. none none, all

Uyarı

pg_qs.query_capture_mode yerine alır pgms_wait_sampling.query_capture_mode. Eğer pg_qs.query_capture_mode, none ise, pgms_wait_sampling.query_capture_mode ayarının hiçbir etkisi yoktur.

Bir parametre için farklı bir değer almak veya ayarlamak için Azure portalını kullanın.

Görünümler ve işlevler

Sorgu deposu tarafından kaydedilen bilgileri sorgulayabilir ve veritabanının query_store şemasında azure_sys bulunan görünümleri ve işlevleri kullanarak silebilirsiniz. PostgreSQL genel rolündeki herkes sorgu deposundaki verileri görmek için bu görünümleri kullanabilir. Bu görünümler yalnızca azure_sys veritabanında kullanılabilir.

Sorgular, yapılarına bakılarak ve sabitler, takma adlar veya büyük/küçük harf farkları gibi anlamsal olarak önemsiz öğeleri göz ardı ederek normalleştirilir.

İki sorgu, aynı başvurulan sütunlar ve tablolar için farklı diğer adlar kullansalar bile, aynı query_id ile tanımlanır. İki sorgu yalnızca içinde kullanılan değişmez değerlerden farklıysa, aynı query_id ile de tanımlanırlar. Aynı query_id ile tanımlanan sorgular için sql_query_text, query store etkinlik kaydetmeye başlamasından beri veya kalıcı verilerin son atılma anından, ki bu query_store.qs_reset işlevi yürütüldüğünde gerçekleşmiştir, o ana kadar ilk önce yürütülen sorgunun sql_query_textdir.

Sorgu normalleştirme nasıl çalışır?

Aşağıdaki örneklerde sorgu normalleştirmesinin nasıl çalıştığı gösterilmektedir:

Aşağıdaki deyimi kullanarak bir tablo oluşturduğunuzu varsayalım:

create table tableOne (columnOne int, columnTwo int);

Query Store veri toplamayı etkinleştirirsiniz ve bir veya daha fazla kullanıcı aşağıdaki sorguları tam olarak şu sırada çalıştırır:

select * from tableOne;
select columnOne, columnTwo from tableOne;
select columnOne as c1, columnTwo as c2 from tableOne as t1;
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one";

Önceki tüm sorgular aynı sorgu kimliğini paylaşır. Query Store, veri toplamayı etkinleştirdikten sonra çalıştırılan ilk sorgunun metnini tutar. Bu nedenle, metin select * from tableOne; şeklindedir.

AŞAĞıDAKI sorgu kümesi normalleştirildikten sonra önceki sorgu kümesiyle eşleşmiyor çünkü WHERE yan tümcesi onları birbirinden farklı yapıyor:

select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;
select * from tableOne where columnOne = -3 and columnTwo = -3;
select columnOne, columnTwo from tableOne where columnOne = '5' and columnTwo = '5';
select columnOne as "column one", columnTwo as "column two" from tableOne as "table one" where columnOne = 7 and columnTwo = 7;

Ancak, bu son kümedeki tüm sorgular aynı sorgu kimliğini paylaşır. Tümünü tanımlayan metin, toplu işteki ilk sorgunun metnidir: select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;.

Son olarak, aşağıdaki sorgular önceki toplu işteki sorguların sorgu kimliğiyle eşleşmiyor. Eşleşmemelerinin nedeni aşağıdaki listede açıklanmıştır:

Sorgu:

select columnTwo as c2, columnOne as c1 from tableOne as t1 where columnOne = 1 and columnTwo = 1;

Eşleşmeme nedeni: Sütun listesi aynı iki sütuna (columnOne ve ColumnTwo) atıfta bulunur, ancak sıraları tersidir. Sıra, önceki toplu işte columnOne, ColumnTwo iken bu sorguda ColumnTwo, columnOne olarak değişir.

Sorgu:

select * from tableOne where columnTwo = 25 and columnOne = 25;

Eşleşmeme nedeni: WHERE yan tümcesindeki ifadelerin değerlendirilme sırası tersine çevrilir. Sıra, önceki toplu işlemde columnOne = ? and ColumnTwo = ? iken bu sorguda ColumnTwo = ? and columnOne = ? olarak değişir.

Sorgu:

select abs(columnOne), columnTwo from tableOne where columnOne = 12 and columnTwo = 21;

Eşleşmeme nedeni: Sütun listesindeki ilk ifade artık columnOne değil, işlev abscolumnOne üzerinde abs(columnOne) değerlendirilmiş ve bu semantik olarak eşdeğer değildir.

Sorgu:

select columnOne as "column one", columnTwo as "column two" from tableOne as "table one" where columnOne = ceiling(16) and columnTwo = 16;

Eşleşmeme nedeni: WHERE yan tümcesindeki ilk ifade artık columnOne'in bir değişmez değerle eşitliğini değerlendirmiyor, bunun yerine işlevin ceiling'nin bir değişmez değer üzerinde değerlendirilmiş sonucu ile eşitliği değerlendiriyor ve bu anlamsal olarak eşdeğer değildir.

İzlenimler

query_store.qs_view

Bu görünüm, sorgu deposunun destekleyici tablolarında kalıcı olduğu tüm verileri döndürür. Sorgu deposunun halen etkin olan zaman penceresi için bellekte kaydettiği veriler, zaman penceresi sona erene ve bellek içi geçici veriler toplanana ve diskte depolanan tablolarda kalıcı hale gelene kadar görünmez. Bu görünüm, her ayrı veritabanı (db_id), kullanıcı (user_id) ve sorgu (query_id) için farklı bir satır döndürür.

İsim Türü Referanslar Açıklama
runtime_stats_entry_id bigint runtime_stats_entries tablosundaki kimlik numarası.
user_id Oıd pg_authid.oid İfadeyi yürüten kullanıcının OID'si.
db_id Oıd pg_database.oid Ifadenin yürütüldüğü veritabanının OID'si.
query_id bigint İfadeye ait ayrıştırma ağacından hesaplanan iç hash kodu.
query_sql_text varchar(10000) Temsili açıklama metni. Aynı yapıya sahip farklı sorgular birlikte kümelenir. Bu metin, kümedeki sorgulardan ilkinin metnidir. Maksimum sorgu metin uzunluğu için varsayılan değer 6.000'dir ve sorgu deposu parametresini pg_qs.max_query_text_lengthkullanarak değiştirebilirsiniz. Sorgu metni bu en yüksek değeri aşarsa, ilk pg_qs.max_query_text_length bayt olarak kesilir.
plan_id bigint Bu sorguya karşılık gelen planın kimliği.
start_time Tarih damgası Sorgular zaman pencerelerine göre toplanır. Parametre pg_qs.interval_length_minutes , bu pencerelerin zaman aralığını tanımlar (varsayılan değer 15 dakikadır). Bu sütun, bu girişin kaydedildiği pencerenin başlangıç zamanına karşılık gelir.
end_time Tarih damgası Bu girişin zaman penceresine karşılık gelen bitiş saati.
calls bigint Sorgunun bu zaman penceresinde kaç kez yürütüldü? Paralel sorgular için, her yürütmeye yönelik çağrı sayısı, sorgunun yürütülmesini yönlendiren arka uç işlemi için 1'e, ayrıca yürütme ağacının paralel dallarını yürütürken işbirliği yapmak üzere başlatılan her arka uç çalışan işlemi için diğer birimlere karşılık gelir.
total_time çift hassasiyet Milisaniye cinsinden toplam sorgu yürütme süresi.
min_time çift hassasiyet Milisaniye cinsinden en düşük sorgu yürütme süresi.
max_time çift hassasiyet Milisaniye cinsinden en fazla sorgu yürütme süresi.
mean_time çift hassasiyet Milisaniye cinsinden ortalama sorgu yürütme süresi.
stddev_time çift hassasiyet Sorgu yürütme süresinin milisaniye cinsinden standart sapması.
rows bigint İfade tarafından alınan veya etkilenen toplam satır sayısı. Paralel sorgular için, her yürütmenin satır sayısı, sorgunun yürütülmesini yönlendiren arka uç işlemi tarafından istemciye döndürülen satır sayısına ve her arka uç çalışan işleminin yürütme ağacının paralel dallarını yürütürken işbirliği yapmak için başlattığı tüm satırların toplamına karşılık gelir ve sorgunun yürütülmesini yönlendiren arka uç işlemine döner.
shared_blks_hit bigint Paylaşılan blok önbelleği isabetlerinin toplam sayısı, deyim tarafından.
shared_blks_read bigint ifade tarafından okunan toplam paylaşılan blok sayısı.
shared_blks_dirtied bigint deyimi tarafından kirlenen toplam paylaşılan blok sayısı.
shared_blks_written bigint Komutla yazılan toplam paylaşılan blok sayısı.
local_blks_hit bigint İfade tarafından yerel blok önbellek isabetlerinin toplam sayısı.
local_blks_read bigint deyimi tarafından okunan toplam yerel blok sayısı.
local_blks_dirtied bigint deyimiyle kirlenen yerel blokların toplam sayısı.
local_blks_written bigint Deyimin yazdığı toplam yerel blok sayısı.
temp_blks_read bigint Deyimi tarafından okunan geçici blokların toplam sayısı.
temp_blks_written bigint İfade tarafından yazılan toplam geçici blok sayısı.
blk_read_time çift hassasiyet Deyimin okuma bloklarını harcadığı toplam süre (milisaniye cinsinden (track_io_timing etkinleştirilirse, aksi takdirde sıfır).
blk_write_time çift hassasiyet Deyimin blokları yazmak için harcadığı toplam süre (milisaniye cinsinden (track_io_timing etkinleştirilirse, aksi takdirde sıfır).
is_system_query Boolean user_id = 10 (azuresu) ile rolün sorguyu yürütip yürütmediğini belirler. Bu kullanıcının süper kullanıcı ayrıcalıkları vardır ve denetim düzlemi işlemlerini gerçekleştirmek için kullanılır. Bu hizmet yönetilen bir PaaS hizmeti olduğundan, yalnızca Microsoft bu süper kullanıcı rolünün bir parçasıdır.
query_type Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Sorgu tarafından temsil edilen işlemin türü. tr-TR: Olası değerler unknown, select, update, insert, delete, merge, utility, nothing, undefined.
search_path Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Sorgu yakalanırken ayarlanan search_path değeri.
query_parameters Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Parametreli sorgunun konumsal parametrelerine geçirilen değerlerle bir JSON nesnesinin metin gösterimi. Bu sütun değerini yalnızca iki durumda doldurur: 1) parametresiz sorgular için. 2) Parametreli sorgular için, pg_qs.parameters_capture_mode olarak ayarlandığında capture_first_sample, ve sorgu deposu, yürütme sırasında sorgunun parametrelerinin değerlerini getirebilirse.
parameters_capture_status Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Sorgu tarafından temsil edilen işlemin türü. Olası değerler şunlardır: succeeded (sorgu ya parametreleştirilmemişti ya da parametreleştirilmiş bir sorguydu ve değerler başarıyla yakalandı), disabled (sorgu parametreleştirildi, ancak pg_qs.parameters_capture_mode değeri capture_parameterless_only olarak ayarlandığı için parametreler yakalanmadı), too_long_to_capture (sorgu parametreleştirildi, ancak bu görünümün query_parameters sütununda gösterilecek JSON’un uzunluğu, sorgu deposunun kalıcı olarak saklaması için aşırı uzun kabul edildiğinden parametreler yakalanmadı), too_many_to_capture (sorgu parametreleştirildi, ancak toplam parametre sayısı, sorgu deposunun kalıcı olarak saklaması için fazla kabul edildiğinden parametreler yakalanmadı), serialization_failed (sorgu parametreleştirildi, ancak parametre olarak geçirilen değerlerden en az biri metne seri hale getirilemedi).

query_store.query_texts_view

Bu görünüm, Sorgu Deposu'ndaki sorgu metin verilerini döndürür. Her ayrı query_sql_text için bir satır vardır.

İsim Türü Açıklama
query_text_id bigint query_texts tablosunun kimliği
query_sql_text varchar(10000) Temsili açıklama metni. Aynı yapıya sahip farklı sorgular birlikte kümelenir. Bu metin, kümedeki sorgulardan ilkinin metnidir.
query_type smallint Sorgu tarafından temsil edilen işlemin türü. PostgreSQL'in <= 14 sürümlerinde olası değerler şunlardır: 0 (bilinmiyor), 1 (seç), 2 (güncelle), 3 (ekle), 4 (sil), 5 (yardımcı program), 6 (hiçbir şey). PostgreSQL >= 15 sürümlerinde olası değerler şunlardır: 0 (bilinmiyor), 1 (select), 2 (update), 3 (insert), 4 (delete), 5 (merge), 6 (yardımcı program), 7 (hiçbiri).

query_store.pgms_wait_sampling_view

Bu görünüm Sorgu Deposu'ndaki bekleme olayları verilerini döndürür. Bu görünüm her ayrı veritabanı (db_id), kullanıcı (user_id), sorgu (query_id) ve olay (olay) için farklı bir satır döndürür.

İsim Türü Referanslar Açıklama
start_time Tarih damgası Sorgular zaman pencerelerine göre toplanır. Parametre pg_qs.interval_length_minutes , bu pencerelerin zaman aralığını tanımlar (varsayılan değer 15 dakikadır). Bu sütun, bu girişin kaydedildiği pencerenin başlangıç zamanına karşılık gelir.
end_time Tarih damgası Bu girişin zaman penceresine karşılık gelen bitiş saati.
user_id Oıd pg_authid.oid deyimini yürüten kullanıcının nesne tanımlayıcısı.
db_id Oıd pg_database.oid deyiminin yürütüldiği veritabanının nesne tanımlayıcısı.
query_id bigint İfadeye ait ayrıştırma ağacından hesaplanan iç hash kodu.
event_type Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Arka planın beklediği olay türü.
event Başka bir metin sağlanmadığı için, verilen metne dayalı bir çeviri yapmam mümkün değil. Lütfen çevirilecek metni belirtin. Arka plan işlem şu anda bekliyorsa bekleme olay adı.
calls tamsayı Aynı olayın kaç kez yakalandığı.

Uyarı

Görünümdeki event_type ve event sütunlarının olası değerler listesi için query_store.pgms_wait_sampling_view resmi dökümantasyonuna bakın ve aynı adlara sahip sütunlara başvuran bilgileri arayın.

query_store.query_plans_görünümü

Bu görünüm, sorguyu yürütmek için kullanılan sorgu planını döndürür. Her ayrı veritabanı kimliği ve sorgu kimliği başına bir satır vardır. Sorgu deposu yalnızca yardımcı olmayan sorgular için sorgu planlarını kaydeder.

İsim Türü Referanslar Açıklama
plan_id bigint EXPLAIN tarafından üretilen normalleştirilmiş sorgu planındaki karma değer. Plan düğümlerinin tahmini maliyetlerini ve arabellek kullanımını dışladığı için normalleştirilmiş biçimdedir.
db_id Oıd pg_database.oid Ifadenin yürütüldüğü veritabanının OID'si.
query_id bigint İfadeye ait ayrıştırma ağacından hesaplanan iç hash kodu.
plan_text varchar(10000) "‘costs=false’, ‘buffers=false’ ve ‘format=text’ verilen deyimin yürütme planı." EXPLAIN tarafından üretilen çıktıyla aynı çıktı.

Functions

query_store.qs_reset

Bu işlev, sorgu deposunun topladığı tüm istatistikleri atar. Zaten disk içi tablolarda kalıcı olan kapalı zaman pencerelerinin istatistiklerini atar. Ayrıca, yalnızca bellekte bulunan geçerli zaman penceresine ilişkin istatistikleri atar. Bu işlevi yalnızca sunucu yöneticisi rolünün (azure_pg_admin) üyeleri yürütebilir.

sorgu_mağazası.veri_geçici_alanı_sıfırla

Bu işlev, sorgu deposu tarafından bellekte toplanan tüm istatistikleri atar. Bu veriler henüz sorgu deposu için toplanan verilerin kalıcılığını destekleyen disk içi tablolara boşaltılmıyor. Bu işlevi yalnızca sunucu yöneticisi rolünün (azure_pg_admin) üyeleri yürütebilir.

Yalnızca okuma modu

PostgreSQL için Azure Veritabanı esnek sunucusu salt okunur moddaysa default_transaction_read_only (örneğin, parametresi olarak ayarlandığında onveya depolama kapasitesine ulaşıldığında salt okunur mod otomatik olarak etkinleştirilirse), sorgu deposu hiçbir veri yakalamaz.

Okuma amaçlı çoğaltmaları olan bir sunucuda sorgu deposunun etkinleştirilmesi, okuma amaçlı çoğaltmaların hiçbirinde sorgu deposunu otomatik olarak etkinleştirmez. Okuma amaçlı çoğaltmalardan herhangi birinde etkinleştirseniz bile sorgu deposu, okuma amaçlı çoğaltmalarda yürütülen sorguları kaydetmez. Okuma replikaları, siz bunları birincil olarak yükseltene kadar salt okunur modda çalışır.