আমি বিভিন্ন ভূমিকা সহ সারণীযুক্ত একটি বৃহত (কয়েকশ জিগ) ডাটাবেস পরিচালনা করি, যার মধ্যে কয়েকটি মিলিয়ন রেকর্ড ধারণ করে। কিছু টেবিল কেবলমাত্র বিপুল সংখ্যক সন্নিবেশ এবং মুছুন, কিছু অন্যান্য কয়েকটি সন্নিবেশ এবং বিপুল সংখ্যক আপডেট প্রাপ্ত করে।
ডেটাবিয়ান পোস্টগ্রেএসকিউএল 8.4 এ একটি ডেবিয়ান 6.0 এএমডি 64 সিস্টেমে 16 গিগাবাইট র্যাম নিয়ে চলে।
প্রশ্নটি কখনও কখনও কোনও টেবিলে অটোভ্যাকুয়াম প্রক্রিয়া হয়, সম্পূর্ণ হতে খুব দীর্ঘ সময় (দিন) লাগে। কোনও নির্দিষ্ট ভ্যাকুয়াম কমান্ড কত সময় নেবে, এটি বাতিল করতে হবে কিনা তা স্থির করতে আমি মোটামুটিভাবে বলতে সক্ষম হতে চাই। এছাড়াও পোস্টগ্রিস ভ্যাকুয়াম অপারেশনের জন্য যদি কোনও অগ্রগতি সূচক থাকে তবে এটি সত্যই সহায়ক হবে।
সম্পাদনা:
আমি বুলেট-প্রুফ সমাধান খুঁজছি না। মৃত টিপলস বা প্রয়োজনীয় আই / ও বাইটগুলির সংখ্যার জন্য কেবল একটি মোটামুটি ইঙ্গিতটি সিদ্ধান্ত নেওয়ার পক্ষে যথেষ্ট। কখন VACUUM
শেষ হবে তার কোনও ক্লু না থাকা সত্যিই বিরক্তিকর ।
আমি দেখেছি যে pg_catalog.pg_stat_all_tables
মৃত tuples সংখ্যা জন্য একটি কলাম আছে। সুতরাং এটি অনুমান করা সম্ভব, এমনকি যদি এর ANALYZE
আগে কোনও টেবিলে থাকে তবে। অন্যদিকে autovacuum_vacuum_threshold
এবং autovacuum_vacuum_scale_factor
সেটিংস একাই প্রমাণ করে যে পোস্টগ্রিস নিজেই টেবিলগুলিতে পরিবর্তনের পরিমাণ সম্পর্কে কিছু জানে এবং সম্ভবত এটি ডিবিএর হাতেও রাখে।
কোন ক্যোয়ারী চালানো হবে তা সম্পর্কে আমি নিশ্চিত নই, কারণ আমি যখন চালনা VACUUM VERBOSE
করি তখন দেখি যে কেবল টেবিলই নয়, সেগুলির সূচকগুলিও প্রক্রিয়াজাত হচ্ছে।