পোস্টগ্রিএসকিউএল-তে অনির্ধারিত লেনদেনগুলি [নিষ্ক্রিয় সংযোগগুলি] আছে কিনা তা কীভাবে নির্ধারণ করবেন?


24

এই পোস্টে একটি মন্তব্য হিসাবে আমি পোস্টগ্রিজএসকিউএল 9.2 এ নিষ্ক্রিয় সংযোগ সম্পর্কে জিজ্ঞাসা করেছি , কিছু অনির্দিষ্ট লেনদেন (সম্ভবত সেই নিষ্ক্রিয় সংযোগগুলির সাথে কিছু সম্পর্কিত) কিছু পারফরম্যান্স সমস্যার কারণ হতে পারে।

অনির্ধারিত লেনদেন আছে কিনা তা নির্ধারণ করার ভাল উপায় কী (তারা যে সংযোগটি করছেন তা নিষ্ক্রিয় কিনা তা জানার কোনও উপায় থাকলে বোনাস পয়েন্ট)?

অনেক ধন্যবাদ!


2
একবার দেখুন pgtop। আপনি আউটপুটে "লেনদেনে নিষ্ক্রিয়" দেখিয়ে সারিগুলির সন্ধান করতে পারেন ps aux
dezso

@ ডেজো - pgtopআকর্ষণীয় দেখায়; উইন্ডোজ এর সমতুল্য আছে?
ম্যাক্স ভার্নন

@ ম্যাক্স ভার্নন এর কয়েকটি ইঙ্গিত রয়েছে যে এটি উইন্ডোজে কাজ করার কথা রয়েছে তবে এর কোনও নিদর্শন উদাহরণ দেখা যায়নি। তবে এটি এখনও একটি (অপেক্ষাকৃত) সহজ পার্ল প্রকল্প, তাই ... এবং যাইহোক, এটি pg_stat * দর্শনে কাজ করে।
dezso

উত্তর:


16

আপনি যদি দেখতে চান যে আপনার কতগুলি নিষ্ক্রিয় সংযোগ রয়েছে যাগুলির একটি উন্মুক্ত লেনদেন রয়েছে, আপনি ব্যবহার করতে পারেন:

select * 
from pg_stat_activity
where (state = 'idle in transaction')
    and xact_start is not null;

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

এটি বলার পরে, আমি নিষ্ক্রিয় অবস্থায় একটি উন্মুক্ত সংযোগটি পুনরায় তৈরি করতে পারি না যার একটি উন্মুক্ত লেনদেন রয়েছে। সম্ভবত অন্য কেউ এটি কীভাবে করবেন সে সম্পর্কে বিশদ সরবরাহ করতে পারে।


3
সাবধান থাকুন যে stateকলামটি কেবল 9.2-এ উপস্থিত রয়েছে। এবং আমার কাছে দেখে মনে হচ্ছে যে যথাযথ অবস্থা 'লেনদেনের ক্ষেত্রে নিষ্ক্রিয়'।
dezso

1
আমি ডেসো এর সাথে একমত
ফ্রাঙ্ক

1
state = 'idle'কোনও উন্মুক্ত লেনদেন নির্দেশ করে না
a_horse_with_no_name

2
I cannot recreate an open connection in the idle state that has an open transaction. ডাটাবেসটিতে দুটি সংযোগ খুলুন এবং "আরম্ভ করুন" টাইপ করুন; একটি. অন্যটিতে উপরের ক্যোয়ারী চালান, এবং আপনার কাছে একটি থাকবে idle in transaction
এক্স-আইটেমনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.