আমি কীভাবে এসকিউএল-কোয়েরিগুলি পিএসকিএল ব্যবহার করতে পারি?


238

আমি আমার এসএসকিউএল-কোয়েরিগুলিকে আমার পোস্টগ্রিজ এসকিউএল ডাটাবেসকে আবার চিহ্নিত করতে চাই। এসকিউএল-কোয়েরিগুলি ব্যবহার করে সময় দেওয়ার কোনও উপায় আছে কি psql?


4
পোস্টগ্রাইএসকিউএল কোয়েরিগুলির বিষয়ে আরও তথ্যের জন্য: dba.stackexchange.com/q/42012/9622
ফ্রাঙ্ক ডারননকোর্ট

উত্তর:


321

প্রবেশ করে কেবল সময় চালু করুন:

\timing


1
আউট ব্যাশ থেকে, "-c" বিকল্পটি psqlএই সেটিংটি মঞ্জুরি দেয় না। আপনি এর মতো কিছু দিয়ে এটি করতে পারেন: psql --o /dev/null <<EOF \timing select 1 EOF
মানুয়েক

6
বা করুনpsql -c '\timing' -c 'select 1'
সিডিএমকেই

72

\timingসময়টি পিএসকিএল প্রম্পটে (কালেব ইতিমধ্যে বলেছে) এ চালু করা যেতে পারে ।

আপনি যদি 8.4 বা তত উপরে থাকেন তবে আপনি একটি alচ্ছিক অন ​​/ অফ যুক্তি যুক্ত করতে\timing পারেন যা আপনি .psqlrc এ সময় নির্ধারণ করতে সক্ষম হতে চাইলে সহায়ক হতে পারে - আপনি \timing onস্পষ্টভাবে একটি স্ক্রিপ্টে সেট করতে পারেন যেখানে প্লেইন \timingঅন্যথায় টগল করে would এটি বন্ধ


12

সময় যে \timingফেরৎ এছাড়াও, নেটওয়ার্ক লেটেন্সি মধ্যে আপনার একটি দূরবর্তী সার্ভারে সংযোগ করে থাকেন।

আপনি যখন এটিটি চান না এবং কোয়েরি আউটপুটও খুব বেশি প্রয়োজন হয় না, তখন আরও ভাল ব্যবহার করুন EXPLAIN ANALYZE, যা পরিকল্পনাকারীর অনুমানের সাথে প্রকৃত মৃত্যুর সময়গুলির সাথে ক্যোয়ারী প্ল্যানকে আউটপুট করে।

উদাহরণ স্বরূপ, EXPLAIN ANALYZE SELECT foo from bar ;


1
... কেবলমাত্র সমস্যাটি হ'ল আপনি সাধারণ ক্যোয়ারী আউটপুট গ্রহণ করেন না।
dezso

2
explain analyzeউত্পাদনের সময়গুলি ব্যবহার করে \timingযা ব্যবহার করার সময় আমি প্রায় দ্বিগুণ যা নেটওয়ার্ক ল্যাটেন্সি সম্পর্কিত মন্তব্যগুলির ভিত্তিতে আমি প্রত্যাশা করব তার বিপরীত। আমার সন্দেহ হয় যে এটির সাধারণ সম্পাদনায় ওভারহেড রয়েছে analyzeযা ক্যোয়ারির সময়কে যুক্ত করে। দস্তাবেজের উপর ভিত্তি করে, আমি মনে করি এটি EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM barআপনাকে আরও দরকারী সময়কালের তথ্য দেবে। বিস্তারিত জানার জন্য postgresql.org/docs/9.6/static/sql-explain.html দেখুন ।
larsks
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.