SORU
7 NİSAN 2010, ÇARŞAMBA


Nasıl İsim tüm tablolar için satır sayısı buluyorsun

Bir satır PostgreSQL tüm tablolar için sayısını bulmak için arıyorum. Bu süre içinde bir tablo ile yapabileceğimi biliyorum

select count(*) from table_name;

ama satır tüm tablolar ve bu sırada tüm tabloları nasıl bir fikir almak için saymak görmek istiyorum.

CEVAP
10 NİSAN 2010, CUMARTESİ


Kont, bu tür kendi artıları ve eksileri ile her biri için üç yol var.

Eğer doğru bir sayım isterseniz, her tabloya karşı kullanılan bir SELECT deyimini yürütmek için var. Bu PostgreSQL kendisi satır satır görünürlüğü bilgi tutar çünkü, başka bir yerde değil, herhangi bir doğru saymak sadece biraz hareket göreli olabilir. Bu işlem yürütür ve zaman içinde bu noktada gördüğünü sayısını alıyoruz. Bu veritabanındaki her tabloya karşı çalıştırmak için otomatik olabilir, ama muhtemelen bu doğrulukta lazım ya da o kadar uzun beklemek istemiyorum.

İkinci yaklaşım istatistikleri toplayıcı kabaca kaç satır takip eden notlar "" (veya sonraki güncelleştirmeleri tarafından silinmiş obsoleted değil) herhangi bir zamanda yaşıyor. Bu değer kapalı ağır aktivite altında bir bit olabilir, ama genellikle iyi bir tahmin

SELECT schemaname,relname,n_live_tup 
  FROM pg_stat_user_tables 
  ORDER BY n_live_tup DESC;

O da kendisini ilginç bir dizi izlemek için bir çok satır ölmüş olduğu gösterilmektedir.

Üçüncü yol sistemi PostgreSQL 8.3 olarak autovacuum işlem tarafından düzenli olarak tablo istatistiklerini güncelleme için yürütülen komut da satır bir tahmin hesaplar ANALİZ dikkat etmek gerekir. Bunun gibi bu yakala:

SELECT 
  nspname AS schemaname,relname,reltuples
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE 
  nspname NOT IN ('pg_catalog', 'information_schema') AND
  relkind='r' 
ORDER BY reltuples DESC;

Kullanmak için daha iyi olduğunu söylemek zor. Normalde bu kararı ben de pg_stat_user_tables bu pg_class içinde veya içinde kullanmak istiyor daha fazla yararlı bilgi var mı dayanarak veriyorum. Temel sayma amaç sadece büyük şeyler genel olarak nasıl olduğunu görmek için, ya da yeterince doğru olmalıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006
  • kylediablo

    kylediablo

    8 Ocak 2007