ডিগ্রি সাইজ কমান্ড পোস্টগ্র্যাগ করে


323

পোস্টগ্রিসে সমস্ত ডাটাবেস আকার খুঁজতে কোনও আদেশ আছে?

নিম্নলিখিত কমান্ডটি ব্যবহার করে আমি একটি নির্দিষ্ট ডাটাবেসের আকার জানতে সক্ষম হয়েছি:

select pg_database_size('databaseName');

1
যদিও এর ইউনিট কি? এটা কি বাইটে আছে?
আবেল কল্লেজো

এটা বাইট। :-)
16384

উত্তর:


365

এবং ... যদি আপনি একটি পুরো ক্যোয়ারী টাইপ করতে না চান তবে ... আপনি টাইপও করতে পারেন ...

\l+ <database_name>

এবং আপনি ডাটাবেসটির আকার সহ ডাটাবেস সম্পর্কে কিছু বিশদ পাবেন।

এবং ... সমস্ত ডাটাবেসের আকার পেতে।

আপনি কেবল টাইপ করতে পারেন ...

\l+

এই postgresql সাহায্যকারী কমান্ডগুলির সাথে ক্যোয়ারী করার জন্য আপনার পোস্টগ্রেকসেল কমান্ড প্রম্পটে যেতে হবে।

টাইপ করে অন্যান্য postgresql সাহায্যকারী কমান্ড পরীক্ষা করুন

\?

postgresql কমান্ড প্রম্পটে।


193

"Pg_datbase" সিস্টেম সারণী থেকে আপনি যে সমস্ত ডাটাবেসের সাথে সংযোগ করতে পারেন তার নামগুলি পেতে পারেন। নীচে হিসাবে কেবল নামগুলিতে ফাংশনটি প্রয়োগ করুন।

select t1.datname AS db_name,  
       pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;

যদি আপনি মানুষের পরিবর্তে কোনও মেশিন দ্বারা আউটপুট গ্রাস করার উদ্দেশ্যে থাকেন তবে আপনি pg_size_ ব্যাখ্যাty () ফাংশনটি কাটাতে পারেন।


কখনও কখনও ডাটাবেসে সূচকগুলিও থাকে। এটির কিছু সঞ্চয় স্থান রয়েছে। আমি একটি কমান্ড খুঁজছি যা সম্পূর্ণ ডাটাবেসের আকার প্রদান করবে।
সুন্দর মন

11
@ ব্যবহারকারী2151087: সূচির জন্য আকারগুলি pg_database_size() অন্তর্ভুক্ত করেছে
a_horse_with_no_name

যদি কেউ ভাবছিলেন, এই ক্যোয়ারী ঠিক তেমন মান দেয় \l+। আউটপুট ফর্ম্যাটটি পড়া সহজ (যদিও কম কলাম)। লিখনযোগ্যতা এবং পঠনযোগ্যতার মধ্যে ট্রেডঅফ…
স্কিপি লে গ্র্যান্ড গৌরও

158
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));

5
মাইকের উত্তরটি কীভাবে আলাদা?
a_horse_with_no_name

3
ভবিষ্যতে আমি এবং অন্যদের এখানে অবতরণের জন্য, আমি আপনাকে এই সমস্যাটি সংরক্ষণ করব: এটি একটি সংক্ষিপ্ত এবং নামযুক্ত ডাটাবেস / টেবিলের জন্য যেখানে মাইকের সার্ভারে থাকা সমস্ত ডাটাবেসের জন্য উত্তরোত্তর মূল প্রশ্নটির উত্তরের উত্তর দেয়।
জেমস ব্রাউন

78

উত্তর ভিত্তিক এখানে দ্বারা @Hendy Irawan

ডাটাবেস মাপ দেখান:

\l+

যেমন

=> \l+
 berbatik_prd_commerce    | berbatik_prd     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 19 MB   | pg_default | 
 berbatik_stg_commerce    | berbatik_stg     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8633 kB | pg_default | 
 bursasajadah_prd         | bursasajadah_prd | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1122 MB | pg_default | 

টেবিলের আকারগুলি দেখান:

\d+

যেমন

=> \d+
 public | tuneeca_prd | table | tomcat | 8192 bytes | 
 public | tuneeca_stg | table | tomcat | 1464 kB    | 

শুধুমাত্র কাজ করে psql


1
আমার জন্য, কেবলমাত্র \d+ *কাজ করা, সরল \d+প্রত্যাবর্তন হয়েছেDid not find any relations.
ফিল পিরোজভকভ

1
@ ফিলিপিরোজহককোভ প্রথমে একটি ডাটাবেসে সংযুক্ত হন ( \c dbname), তারপরে করুন \d+
chappjc

এটি কি এক নম্বর বা লোয়ারकेস এল?
dman

28

হ্যাঁ, পোস্টগ্রিসে একটি ডাটাবেসের আকার খুঁজতে একটি আদেশ রয়েছে। এটি নিম্নলিখিত:

SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;

3
ক্রমটি এই ফাংশনে ভুল। এটি মানব পাঠযোগ্য বিন্যাসগুলির মধ্যে পার্থক্য বলতে পারে না। উদাহরণস্বরূপ, আকারের ডাটাবেস 7151 KB আকারের 7 জিবি ডাটাবেসের আগে আসে।
onnimonni

স্থির:SELECT database_name, pg_size_pretty(size) from (SELECT pg_database.datname as "database_name", pg_database_size(pg_database.datname) AS size FROM pg_database ORDER by size DESC) as ordered;
মাইকেল

1
আমি মনে করি কেবল বাছাইয়ের জন্য আপনার "কাঁচা" আকারের প্রয়োজন। আমি এটি একটি সাব-কোয়েরির পরিবর্তে ব্যবহার করেছি SELECT pg_database.datname AS "DB Name", pg_size_pretty(pg_database_size(pg_database.datname)) AS "Size" FROM pg_database ORDER BY (pg_database_size(pg_database.datname)) DESC;
এম-ডাহাব

20
SELECT pg_size_pretty(pg_database_size('name of database'));

আপনাকে একটি নির্দিষ্ট ডাটাবেসের মোট আকার দেবে তবে আমি মনে করি না আপনি কোনও সার্ভারের মধ্যে সমস্ত ডাটাবেস করতে পারবেন।

তবে আপনি এটি করতে পারেন ...

DO
$$
DECLARE
r   RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));

RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;

END LOOP;
END;
$$

কেন pg_databaseএই ঘৃণ্য pl / pgsql এর চেয়ে একক কোয়েরি হতে পারে না ?
মোজেনারথ

12

থেকে পোস্টগ্রি উইকি


দ্রষ্টব্য: ব্যবহারকারী যে ডেটাবেসগুলিতে সংযোগ করতে পারবেন না সেগুলি এমনভাবে সাজানো হয় যেন তারা অসীম আকারের হয়।

SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS Size
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20

আপনার বৃহত্তম সম্পর্কের আকার এবং বৃহত্তম টেবিলগুলির সন্ধানের জন্য পৃষ্ঠায় স্নিপেট রয়েছে ets


4

পোস্টগ্রিজএসকিউএল এর সমস্ত ডাটাবেসের আকার জানতে আপনি নীচের প্রশ্নের ব্যবহার করতে পারেন।

রেফারেন্স এই ব্লগ থেকে নেওয়া হয়।

SELECT 
    datname AS DatabaseName
    ,pg_catalog.pg_get_userbyid(datdba) AS OwnerName
    ,CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
        ELSE 'No Access For You'
    END AS DatabaseSize
FROM pg_catalog.pg_database
ORDER BY 
    CASE 
        WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(datname)
        ELSE NULL
    END DESC;

3

PgAdmin শুরু করুন, সার্ভারের সাথে সংযুক্ত করুন, ডাটাবেসের নামটিতে ক্লিক করুন এবং পরিসংখ্যান ট্যাবটি নির্বাচন করুন। আপনি তালিকার নীচে ডাটাবেসের আকার দেখতে পাবেন।

তারপরে আপনি যদি অন্য কোনও ডাটাবেসে ক্লিক করেন তবে এটি পরিসংখ্যান ট্যাবে থাকে যাতে আপনি সহজেই অনেক চেষ্টা ছাড়াই অনেকগুলি ডাটাবেস আকার দেখতে পারেন। আপনি যদি টেবিলের তালিকাটি খোলেন, এটি সমস্ত টেবিল এবং তাদের আকার দেখায়।


1
এবং আপনি যদি Databasesট্রি নোড (একটি ডিবি সংযোগের সাথে সংযুক্ত) ক্লিক করেন এবং Statisticsট্যাবটি নির্বাচন করেন তবে আপনাকে সমস্ত ডেটাবেস এবং তার আকারগুলির (তৃতীয় কলাম) এর একটি সুন্দর সংক্ষিপ্তসার উপস্থাপন করা হবে।
zloster

2
du -k /var/lib/postgresql/ |sort -n |tail

2
আপনি অনুমানগুলি সম্পর্কে আরও প্রসঙ্গ যুক্ত করতে চাইতে পারেন যেখানে ডাটাবেস তার ডেটা সংরক্ষণ করছে, এর ফলাফল কী হবে ইত্যাদি ইত্যাদি
fzzfzzfzz

3
যদিও এটি একটি সঠিক উত্তর হতে পারে, কিছু ব্যাখ্যা অন্তর্ভুক্ত করা ভাল অনুশীলন।
স্নাইপার্ড

du -k /var/lib/pgsql/ | sort -n | tail
CentOS-
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.