পোস্টগ্রিএসকিউএল: একটি টেবিল তৈরির তারিখ


13

আমি সম্প্রতি একটি প্রকল্প শেষ করেছি, যার সময় অনেকগুলি ডিবি টেবিল তৈরি হয়েছিল।

এই টেবিলগুলির বেশিরভাগটিতে অস্থায়ী আবর্জনা রয়েছে এবং আমি এই সমস্ত টেবিলের তালিকা করার একটি সহজ উপায় খুঁজছি।

সমস্ত ডিবি টেবিলগুলি তাদের তৈরির তারিখ অনুসারে বাছাই করার কোনও উপায় আছে কি?

উত্তর:



5

হ্যাঁ এটি সম্ভব - সীমাবদ্ধতার সাথে।

দেখা

/programming/18849756/automatically-drop-tables-and-indexes-older-than-90-days/18852752#18852752

আরো তথ্যের জন্য

WITH CTE AS
(
    SELECT 
        table_name 

        ,
        (
            SELECT 
                MAX(pg_ls_dir::int)::text 
            FROM pg_ls_dir('./base') 
            WHERE pg_ls_dir <> 'pgsql_tmp' 
            AND  pg_ls_dir::int  <= (SELECT relfilenode FROM pg_class WHERE relname ILIKE table_name)
        ) as folder 


        ,(SELECT relfilenode FROM pg_class WHERE relname ILIKE table_name) filenode

    FROM information_schema.tables
    WHERE table_type = 'BASE TABLE'
    AND table_schema = 'public'
)

SELECT 
    table_name 
    ,(
        SELECT creation 
        FROM pg_stat_file(
            './base/' || folder || '/' || filenode 
        )
    ) as creation_time
FROM CTE;


1

এই জিজ্ঞাসা

select pslo.stasubtype, pc.relname, pslo.statime
from pg_stat_last_operation pslo
join pg_class pc on(pc.relfilenode = pslo.objid)
and pslo.staactionname = 'CREATE'
order by pslo.statime desc 

অবশ্যই সাহায্য করবে।

এনবি: এটি কেবল গ্রিনপ্লামে কাজ করে।


0

টেবিল তৈরির সময় পাওয়া সম্ভব নয়, তবে আপনি যদি সম্প্রতি আপনার ডাটাবেসটি নিয়মিতভাবে শূন্য করে থাকেন তবে আপনি সম্প্রতি সারণীগুলির তালিকা পেতে পারেন। আপনি এই ক্যোয়ারীটি ব্যবহার করতে পারেন: pg_stat_user_tables থেকে * নির্বাচন করুন যেখানে শেষ_ভ্যাকুয়াম> এখন () - বিরতি '3 দিন'; আপনি আপনার প্রয়োজন অনুযায়ী ব্যবধান পরিবর্তন করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.