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.
Sorgu deposu, PostgreSQL için Azure Veritabanı esnek sunucu örneğinde 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
Patlayıcı fiyatlandırma katmanında performans sorunlarına neden olabileceği için sorgu deposunu 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 Parametreler'i seçin.
- parametresini
pg_qs.query_capture_modearayı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
topveyaallolarak ayarlayın ve Kaydet'i seçin. İlk veri toplu işleminin veritabanında kalıcı olmasıazure_sysiçin 20 dakikaya kadar izin verin.
Sorgu deposu bekleme örneklemesini etkinleştirme
- parametresini
pgms_wait_sampling.query_capture_modearayın. - Değeri
allolarak 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. 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ı bulun
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 | Action |
|---|---|
| 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 arabellek GÇ beklemeleri | Sorgu deposunda çok fazla sayıda fiziksel okuma içeren sorguları bulun. Eğer sorgular, yüksek GÇ beklemeleri ile eşleşiyorsa, bu sorgular için fiziksel okuma sayısını azaltabilecek bazı dizinlerin oluşturulmasını önerip önermediğini görmek amacıyla otonom ayarlama özelliğini etkinleştirmeyi düşünün. |
| 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 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:
| 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 sorgulardan sorgu deposu tarafından kalıcı hale gelen en fazla sorgu sayısı. | 500 |
100 - 500 |
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 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 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 |
Uyarı
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:
| 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 veya veritabanının şemasında query_storeazure_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 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ğı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, select * from tableOne; olabilecektir.
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şlemin query_id ile eşleşmeyen bazı sorguları ve eşleşmeme sebeplerini 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ütun olan columnOne ve ColumnTwo'ya başvurur, ancak bu sütunların sırası önceki toplu işlemdeki columnOne, ColumnTwo den bu sorgudaki ColumnTwo, columnOne sıraya ters çevrilmiş.
Sorgu:
select * from tableOne where columnTwo = 25 and columnOne = 25;
Eşleşmeme nedeni: WHERE yan tümcesinde değerlendirilen ifadelere başvurma sırası, önceki toplu işteki sıralamadan bu sorgudaki sıralamaya columnOne = ? and ColumnTwo = ? tersine çevrilmiştirColumnTwo = ? 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 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ı olan tüm verileri döndürür. Şu anda etkin zaman penceresinde bellek içinde kaydedilen veriler, zaman penceresi sona erip bellek içi geçici veriler toplanarak diskteki 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 metni uzunluğu için varsayılan değer 6000'dir ve sorgu deposu parametresi pg_qs.max_query_text_lengthkullanı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 |
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ü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 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ı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 |
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 parametrelendirilmemiş veya parametreleştirilmiş bir sorguydu ve değerler başarıyla yakalandı), disabled (sorgu parametreleştirildi, ancak pg_qs.parameters_capture_mode, capture_parameterless_only olarak ayarlandığı için parametreler yakalanmadı), too_long_to_capture (sorgu parametreleştirildi, ancak bu görünümdeki query_parameters sütununda gösterilecek olan JSON'un uzunluğu, sorgu deposunun saklayabileceğinden daha uzun kabul edildiğinden, parametreler yakalanmadı), too_many_to_capture (sorgu parametreleştirildi, ancak toplam parametre sayısı, sorgu deposunun saklayabileceğinden fazla kabul edildiğinden parametreler yakalanmadı), serialization_failed (sorgu parametreleştirildi, ancak parametre olarak verilen değerlerden en az biri metne dönüştürülemedi). |
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 <= 14 sürümünde olası değerler (bilinmeyen), (seç), 0 (güncelleştirme), 12 (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), 12 (ekle), (sil), 3 (birleştirme), 4 (yardımcı program), 56 (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.
| İ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 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.
Yalnızca okuma modu
PostgreSQL için Azure Veritabanı esnek sunucu örneği salt okunur moddaysa (örneğin, default_transaction_read_only parametresi olarak ayarlandığında on, veya depolama kapasitesine ulaşıldığında salt okunur modu otomatik olarak etkinleştirilirse), sorgu mağazası 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. Bir okuma replikasında etkinleştirseniz bile, siz onu ana replikaya yükseltene kadar salt okunur modda çalıştıklarından, sorgu deposu hiçbir okuma replikasında yürütülen sorguları kaydetmez.