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: PostgreSQL için Azure Veritabanı - Esnek Sunucu
Sorgu deposu, PostgreSQL için Azure Veritabanı esnek 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 Veritabanı esnek sunucu örneğinde 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. Sorgu deposu, belirli bir sunucudaki tüm veritabanları için genel olarak etkinleştirilebilir veya devre dışı bırakılabilir ve veritabanı başına açılamaz veya kapatılamaz.
Önemli
Performans etkisine neden olabileceği için Sorgu deposunu Ani Artırılabilir fiyatlandırma katmanında etkinleştirmeyin.
Azure portalında sorgu deposunu etkinleştirme
- Azure portalında oturum açın ve PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi seçin.
- Menünün Ayarlar bölümünde Sunucu parametreleri'ni seçin.
- parametresini
pg_qs.query_capture_mode
arayın. - 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ğeri
top
veyaall
olarak 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
- parametresini
pgms_wait_sampling.query_capture_mode
arayın. - Değeri ve
all
olarak ayarlayın.
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 iyi N sorgularını 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. Bu depolardaki bilgiler görünümler kullanılarak sorgulanabilir.
Sorgu deposu bilgilerine erişme
Sorgu deposu verileri, PostgreSQL için Azure Veritabanı esnek sunucu örneğinizdeki veritabanında depolanırazure_sys
.
Aşağıdaki sorgu, sorgu deposuna kaydedilen sorgular hakkında bilgi döndürür:
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ı bulma
Bekleme olayı türleri, farklı bekleme olaylarını benzerliğe göre demetler halinde birleştirir. Sorgu deposu 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şkilendirebilmek, sorgu performansı özelliklerine nelerin katkıda bulunabileceğini daha iyi anlayabileceğiniz anlamına gelir.
Sorgu deposundaki 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 | Eylem |
---|---|
Yüksek kilit beklemeleri | Etkilenen sorgular için sorgu metinlerini denetleyin ve hedef varlıkları belirleyin. Sık yürütülen ve/veya süresi yüksek olan ve aynı varlığı değiştiren diğer sorguları sorgu deposuna 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 arabellekli GÇ beklemeleri | Sorgu deposunda çok fazla sayıda fiziksel okuma içeren sorguları bulun. Yüksek GÇ beklemeleri olan sorgularla eşleşiyorsa, bu sorguların fiziksel okuma sayısını azaltabilecek bazı dizinler oluşturmanın önerilip önerilmediğini görmek için otomatik dizin ayarlama özelliğini etkinleştirmeyi göz önünde bulundurun. |
Yüksek bellek beklemeleri | Sorgu deposunda en çok bellek tüketen sorguları bulun. Bu sorgular büyük olasılıkla etkilenen sorguların ilerleme durumunu geciktiriyor. |
Yapılandırma seçenekleri
Sorgu deposu etkinleştirildiğinde, verileri pg_qs.interval_length_minutes sunucu parametresi tarafından belirlenen uzunluktaki toplama pencerelerine kaydeder (varsayılan olarak 15 dakikadır). Her pencere için pencere başına 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ğeri). Yapılandırılan aralık boyunca ayrı sorguların sayısı 500'e ulaşırsa, kaydedilenlerin %5'i daha fazlasına yer açmak için serbest bırakılır. Önce serbest bırakılanlar, en az kez yürütülenlerdir.
Sorgu Deposu parametrelerini yapılandırmak için aşağıdaki seçenekler kullanılabilir:
Parametre | 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.is_enabled_fs |
Yalnızca İç Kullanım: Bu parametre, özellik geçersiz kılma anahtarı olarak kullanılır. Kapalı olarak görünüyorsa, için ayarlanan pg_qs.query_capture_mode değere rağmen sorgu deposu devre dışı bırakılır. |
on |
on , off |
pg_qs.max_plan_size |
Sorgu deposuna göre sorgu planı metninden kaydedilen bayt sayısı üst sınırı; daha uzun planlar kesilir. | 7500 |
100 - 10000 |
pg_qs.max_query_text_length |
Kaydedilebilecek en fazla sorgu uzunluğu; daha uzun sorgular kesilir. | 6000 |
100 - 10000 |
pg_qs.parameters_capture_mode |
Sorgu konumsal parametrelerinin yakalanması ve ne zaman yapılacağı. | capture_parameterless_only |
capture_parameterless_only , capture_first_sample |
pg_qs.query_capture_mode |
İzlenen deyimler. | none |
none , top , all |
pg_qs.retention_period_in_days |
Sorgu deposu için gün cinsinden bekletme süresi penceresi. Eski veriler otomatik olarak silinir. | 7 |
1 - 30 |
pg_qs.store_query_plans |
Sorgu planlarının sorgu deposuna kaydedilip kaydedilmeyeceği. | off |
on , off |
pg_qs.track_utility |
Sorgu deposu yardımcı program komutlarını izlemesi gerekip gerekmediği. | on |
on , off |
(*) Değerindeki değişikliğin etkili olması için sunucunun yeniden başlatılmasını gerektiren statik sunucu parametresi.
Not
parametresinin değerini pg_qs.max_query_text_length
değiştirirseniz, değişikliği yapmanızdan önce yakalanan tüm sorguların metni aynı query_id ve sql_query_text kullanmaya devam ediyor. Yeni değerin geçerli olmadığı izlenimini verebilir, ancak daha önce sorgu deposuna kaydedilmemiş sorgular için sorgu metninin yeni yapılandırılan maksimum uzunluğu kullandığını görürsünüz. Bu 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 yakalanan metin de dahil olmak üzere sorgu deposu tarafından kaydedilen tüm bilgileri kaldırır ve 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:
Parametre | 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.is_enabled_fs |
Yalnızca İç Kullanım: Bu parametre, özellik geçersiz kılma anahtarı olarak kullanılır. olarak off görünüyorsa, için ayarlanan pgms_wait_sampling.query_capture_mode değere rağmen bekleme örneklemesi devre dışı bırakılır. |
on |
on , off |
pgms_wait_sampling.query_capture_mode |
Uzantının izlemesi pgms_wait_sampling gereken deyimler. |
none |
none , all |
Not
pg_qs.query_capture_mode
yerine alır pgms_wait_sampling.query_capture_mode
. ise pg_qs.query_capture_mode
none
, ayarın pgms_wait_sampling.query_capture_mode
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 veya veritabanının şemasında query_store
azure_sys
bulunan bazı görünüm 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 bakarak ve değişmez değerler, sabitler, diğer adlar veya büyük/küçük harf farklılıkları gibi anlamlı olmayan herhangi bir şeyi yoksayarak normalleştirilir.
İki sorgu, aynı başvuruda bulunılan 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, sorgu deposu etkinliği kaydetmeye başladığından veya kalıcı verilerin son atıldığından beri yürütülen sorgunun query_store.qs_reset işlevi yürütülür.
Sorgu normalleştirme nasıl çalışır?
Aşağıda, bu normalleştirmenin nasıl çalıştığını göstermeye çalışan bazı örnekler verilmiştir:
Aşağıdaki deyimle bir tablo oluşturduğunuzu varsayalım:
create table tableOne (columnOne int, columnTwo int);
Sorgu Deposu veri toplamayı etkinleştirirsiniz ve tek veya birden çok kullanıcı aşağıdaki sorguları tam olarak şu sırayla yürütü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ı query_id paylaşır. Sorgu Deposu'nun sakladığı metin, veri toplamayı etkinleştirdikten sonra yürütülen ilk sorgunun metnidir. Bu nedenle, olacaktır select * from tableOne;
.
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ı query_id paylaşır ve bunların tümünü tanımlamak için kullanılan metin, toplu işteki select columnOne as c1, columnTwo as c2 from tableOne as t1 where columnOne = 1 and columnTwo = 1;
ilk sorgunun metnidir.
Son olarak, önceki toplu iştekilerin query_id eşleşmeyen bazı sorguları ve neden eşleşmeme nedenlerini aşağıda bulabilirsiniz:
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) başvurur, ancak başvurulan sıra önceki toplu işlemden columnOne, ColumnTwo
bu sorgudakine ColumnTwo, columnOne
tersine çevrilir.
Sorgu:
select * from tableOne where columnTwo = 25 and columnOne = 25;
Eşleşmeme nedeni: WHERE yan tümcesinde değerlendirilen ifadelerin başvurulacağı sıra, önceki toplu işten bu sorgudakine columnOne = ? and ColumnTwo = ?
tersine çevrilirColumnTwo = ? and columnOne = ?
.
Sorgu:
select abs(columnOne), columnTwo from tableOne where columnOne = 12 and columnTwo = 21;
Eşleşmeme nedeni: Sütun listesindeki ilk ifade artık değildircolumnOne
, ancak işlev abs
(columnOne
üzerinden abs(columnOne)
değerlendirilir) ve bu da sematik 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 değerinin eşitliğini columnOne
değişmez değerle değerlendirmez, ancak işlevin ceiling
sonucu bir değişmez değer üzerinden değerlendirilir ve bu değer sematik olarak eşdeğer değildir.
Görünümler
query_store.qs_view
Bu görünüm, sorgu deposunun destekleyici tablolarında kalıcı olan tüm verileri döndürür. Şu anda etkin olan zaman penceresi için bellek içinde kaydetmeye devam eden veriler, zaman penceresi sona erene ve bellek içi geçici verileri 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.
Ad | Tür | Başvurular | Açıklama |
---|---|---|---|
runtime_stats_entry_id |
büyük tamsayı | runtime_stats_entries tablosundaki kimlik. | |
user_id |
Oıd | pg_authid.oid | deyimini yürüten kullanıcının OID'i. |
db_id |
Oıd | pg_database.oid | deyiminin yürütüldiği veritabanının OID'sini. |
query_id |
büyük tamsayı | deyiminin ayrıştırma ağacından hesaplanan iç karma 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 metni uzunluğu için varsayılan değer 6000'dir ve sorgu deposu parametresi pg_qs.max_query_text_length kullanılarak değiştirilebilir. Sorgu metni bu en yüksek değeri aşarsa, ilk pg_qs.max_query_text_length bayt olarak kesilir. |
|
plan_id |
büyük tamsayı | Bu sorguya karşılık gelen planın kimliği. | |
start_time |
Tarih damgası | Sorgular zaman pencerelerine göre toplanır. Sunucu parametresi 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 veri türü | Sorgunun bu zaman penceresinde kaç kez yürütüldü? Paralel sorgular için, her yürütme için çağrı sayısının sorgunun yürütülmesini yönlendiren arka uç işlemi için 1'e karşılık geldiğini ve yürütme ağacının paralel dallarını yürütmeye yönelik işbirliği yapmaya başlayan her arka uç çalışan işlemi için birçok başka birimin olduğuna dikkat edin. | |
total_time |
çift duyarlık | Milisaniye cinsinden toplam sorgu yürütme süresi. | |
min_time |
çift duyarlık | Milisaniye cinsinden en düşük sorgu yürütme süresi. | |
max_time |
çift duyarlık | Milisaniye cinsinden en fazla sorgu yürütme süresi. | |
mean_time |
çift duyarlık | Milisaniye cinsinden ortalama sorgu yürütme süresi. | |
stddev_time |
çift duyarlık | Sorgu yürütme süresinin milisaniye cinsinden standart sapması. | |
rows |
bigint | Deyiminden alınan veya etkilenen toplam satır sayısı. Paralel sorgular için, her yürütmenin satır sayısının sorgunun yürütülmesini yönlendiren arka uç işlemi tarafından istemciye döndürülen satır sayısına, ayrıca yürütme ağacının paralel dallarını yürütürken işbirliği yapmak için başlatılan her arka uç çalışan işleminin başlattığı tüm satırların toplamına karşılık geldiğini ve sorgunun yürütülmesini yönlendiren arka uç işlemine geri döndüğüne dikkat edin. | |
shared_blks_hit |
büyük tamsayı | deyimi tarafından paylaşılan blok önbelleği isabetlerinin toplam sayısı. | |
shared_blks_read |
büyük tam sayı | deyimi 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 | Deyimi tarafından yazılan toplam paylaşılan blok sayısı. | |
local_blks_hit |
bigint | deyimi tarafından yapılan yerel blok önbelleği isabetlerinin toplam sayısı. | |
local_blks_read |
büyük tam sayı | deyimi tarafından okunan toplam yerel blok sayısı. | |
local_blks_dirtied |
bigint | deyimiyle kirlenen yerel blokların toplam sayısı. | |
local_blks_written |
büyük tamsayı | deyimi tarafından yazılan toplam yerel blok sayısı. | |
temp_blks_read |
bigint | Deyimi tarafından okunan geçici blokların toplam sayısı. | |
temp_blks_written |
büyük tamsayı | Deyimi tarafından yazılan toplam geçici blok sayısı. | |
blk_read_time |
çift duyarlık | Deyimin okuma bloklarını harcadığı toplam süre (milisaniye cinsinden (track_io_timing etkinleştirilirse, aksi takdirde sıfır). | |
blk_write_time |
çift duyarlık | 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ü. 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 zamanında sorgunun parametreleri için değerleri 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 parametrelendirilmemiş veya parametreleştirilmiş bir sorguydu ve değerler başarıyla yakalanmış), disabled (sorgu parametreleştirildi, ancak parametre olarak ayarlandığından pg_qs.parameters_capture_mode parametreler yakalanmadıcapture_parameterless_only ), too_long_to_capture (sorgu parametreleştirildi, ancak bu görünümün sütununda ortaya query_parameters çıkan JSON'un uzunluğu sorgu deposunun kalıcı olması için aşırı uzun olarak kabul edildiğinden parametreler yakalanmadı), too_many_to_capture (sorgu parametreleştirildi, ancak toplam parametre sayısı, sorgu deposunun kalıcı olması için aşırı kabul edildiğinden parametreler yakalanmadı), serialization_failed (sorgu parametreleştirildi, ancak parametre olarak geçirilen değerlerden en az biri metne serileştirilemedi). |
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.
Ad | Tür | Açıklama |
---|---|---|
query_text_id |
büyük tamsayı | 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 |
küçük int | Sorgu tarafından temsil edilen işlemin türü. PostgreSQL <= 14 sürümünde olası değerler (bilinmeyen), (seç), 0 (güncelleştirme), 1 2 (ekle), (sil), 3 (yardımcı program) 4 (hiçbir şey) 5 şeklindedir 6 . PostgreSQL >= 15 sürümünde olası değerler (bilinmeyen), (seç), 0 (güncelleştirme), 1 2 (ekle), (sil), 3 (birleştirme), 4 (yardımcı program), 5 6 (hiçbir şey) şeklindedir 7 . |
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.
Ad | Tür | Başvurular | Açıklama |
---|---|---|---|
start_time |
Tarih damgası | Sorgular zaman pencerelerine göre toplanır. Sunucu parametresi 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 |
büyük tamsayı | deyiminin ayrıştırma ağacından hesaplanan iç karma 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 ucun 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 uç şu anda bekliyorsa bekleme olayı adı. | |
calls |
tamsayı | Aynı olayın kaç kez yakalandığı. |
Not
Görünümün ve sütunlarındaki event_type
olası değerlerin event
listesi için pg_stat_activityquery_store.pgms_wait_sampling_view
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.
Ad | Tür | Başvurular | 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 | deyiminin yürütüldiği veritabanının OID'sini. |
query_id |
bigint | deyiminin ayrıştırma ağacından hesaplanan iç karma kodu. | |
plan_text |
varchar(10000) | verilen costs=false, buffers=false ve format=text deyiminin yürütme planı. EXPLAIN tarafından üretilen çıktıyla aynı çıktı. |
İşlevler
query_store.qs_reset
Bu işlev, sorgu deposu tarafından şimdiye kadar toplanan tüm istatistikleri atar. Zaten disk içi tablolarda kalıcı olan kapalı zaman pencerelerinin istatistiklerini atar. Ayrıca, yalnızca bellek içinde 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 bellek içinde toplanan tüm istatistikleri atar (başka bir ifadeyle, toplanan verilerin sorgu deposu için kalıcılığını destekleyen disk tablolarında henüz temizlenmemiş olan bellekteki veriler). Bu işlevi yalnızca sunucu yöneticisi rolünün (azure_pg_admin
) üyeleri yürütebilir.
Salt okunur mod
PostgreSQL için Azure Veritabanı esnek sunucusu salt okunur moddaysa default_transaction_read_only
(örneğin, parametresi olarak ayarlandığında on
veya 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, siz birincil çoğaltmaya yükseltene kadar salt okunur modda çalıştıklarından, sorgu deposu hiçbir okuma çoğaltmasında yürütülen sorguları kaydetmez.