Postgres: চেক ডিস্কের স্থান বস্তুগত দর্শন দ্বারা নেওয়া?


14

পোস্টগ্রিসে আমি কীভাবে সূচিপত্র এবং সারণীগুলির আকার পরীক্ষা করতে জানি (আমি 9.4 সংস্করণটি ব্যবহার করছি):

SELECT
   relname AS objectname,
   relkind AS objecttype,
   reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size
   FROM pg_class
   WHERE relpages >= 8
   ORDER BY relpages DESC;

তবে এটি বস্তুগত দৃষ্টিভঙ্গি প্রদর্শন করে না। তারা কীভাবে ডিস্কের জায়গা গ্রহণ করছে তা আমি কীভাবে পরীক্ষা করতে পারি?

উত্তর:


23

এই যে মতামত রূপায়িত অভিমানী হয় relpages >= 8মধ্যে pg_class, যে ক্ষেত্রে হতে নেই। এটি আসলে খালি থাকতে পারে - এখনও জনবহুল নয়, দ্বারা নির্দেশিত pg_class.relispopulated = FALSE। এই ক্ষেত্রে সংশ্লিষ্ট ডিস্ক ফাইলটির শূন্য আকার রয়েছে।

পরিবর্তে চেষ্টা করুন:

SELECT relname   AS objectname
     , relkind   AS objecttype
     , reltuples AS entries
     , pg_size_pretty(pg_table_size(oid)) AS size  -- depending - see below
FROM   pg_class
WHERE  relkind IN ('r', 'i', 'm')
ORDER  BY pg_table_size(oid) DESC;

কোথায় পাওয়া যায় ধরনের হয় :

r= সাধারণ টেবিল,
i= সূচক,
S= ক্রম,
v= দর্শন,
m= বস্তুগত দর্শন
c,
t= সংমিশ্রিত প্রকার, = টোস্ট সারণি,
f= বিদেশী টেবিল

একটি ব্যবহার করুন ডাটাবেসের বস্তুর আকার ফাংশন বরং আপনার নিজের বিল্ডিং নয়। সচেতন হন যে "একটি টেবিলের আকার" বিভিন্ন উপায়ে সংজ্ঞায়িত করা যায়। বিবরণ:


1
সঠিক উত্তর। নোট করুন যে আকার অনুসারে অর্ডার বিভ্রান্তিকর কারণ আপনি মানব-পাঠযোগ্য ফর্মের আকার মুদ্রণ করে সাজিয়ে সাজিয়ে সাজানোর শব্দক্রমিকভাবে সাজান
জ্যাক

@ জ্যাক: ভালো কথা। আমি আরও বুদ্ধিমান যোগ ORDER BY
এরউইন ব্র্যান্ডসটেটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.