Psql භාවිතා කර SQL විමසීම් කරන්නේ කෙසේද?


261

සමහර SQL විමසුම් මගේ PostgreSQL දත්ත ගබඩාවට නැවත මිණුම් සලකුණු කිරීමට මම කැමතියි. මට SQL විමසීම් භාවිතා කළ හැකි ක්‍රමයක් psqlතිබේද?


4
මිණුම් සලකුණු කිරීම පිළිබඳ වැඩි විස්තර සඳහා PostgreSQL විමසුම්: dba.stackexchange.com/q/42012/9622
ෆ්‍රෑන්ක් ඩර්නන්කෝට්

Answers:


354

ඇතුලත් කිරීමෙන් වේලාව සක්‍රිය කරන්න:

\timing


1
පිටත සිට, "-c" විකල්පය psqlමෙම සැකසීමට ඉඩ නොදේ. ඔබට මෙය වැනි දෙයක් සමඟ කළ හැකිය: psql --o /dev/null <<EOF \timing select 1 EOF
3manuek

7
නැතහොත් කරන්නpsql -c '\timing' -c 'select 1'
cdmckay

1
එකතු \timingකිරීමට ~/.psqlrcඔබට එය ඔබ සේවාදායකයා ආරම්භ එක් එක් කාල සක්රීය අවශ්ය නම්.
ජොයෙල් හැරිස්

72

Psql \timingවිමසුමේදී වේලාව සක්‍රිය කළ හැකිය (කාලෙබ් දැනටමත් පවසා ඇති පරිදි).

ඔබ 8.4 හෝ ඉහත නම්, ඔබ විකල්ප / මත තර්කය ලකුණු එකතු කළ හැකි\timing , ඔබ කිරීමට හැකි විය අවශ්ය නම් ප්රයෝජනවත් විය හැකි .psqlrc දී මත කට්ටලයක් කාලය - ඔබ එවකට සැකසිය හැක \timing onඑහිදී සරල තිර රචනය ගනනාවකින්ම \timingඑසේ ටොගල බව ඒක අක්‍රියයි


17

\timingඔබ දුරස්ථ සේවාදායකයකට සම්බන්ධ වන්නේ නම් ආපසු එන වේලාවට ජාල ප්‍රමාදයද ඇතුළත් වේ.

ඔබට එය අවශ්‍ය නැති විට සහ විමසුම් ප්‍රතිදානයද අවශ්‍ය නොවන විට, වඩා හොඳ භාවිතය EXPLAIN ANALYZE, එය සැලසුම්කරුගේ ඇස්තමේන්තු සමඟ සත්‍ය විමසුම් සැලැස්ම ප්‍රතිදානය කරයි.

උදාහරණයක් වශයෙන්, EXPLAIN ANALYZE SELECT foo from bar ;


1
... එකම ගැටළුව වන්නේ සාමාන්‍ය විමසුම් ප්‍රතිදානය ඔබට නොලැබීමයි.
ඩෙසෝ

2
භාවිතා explain analyzeආසන්න වශයෙන් භාවිතා කරන විට මම දකින දේ දෙගුණ කරන බව අස්වැන්න වරක් \timingමම ජාලය පමාවක් සම්බන්ධයෙන් මෙහි අදහස් පදනම් බලාපොරොත්තු දෙයෙහි විරුද්ධ වන. එය සාමාන්‍යයෙන් ක්‍රියාත්මක කිරීමේදී පොදු කාර්යයක් තිබේදැයි මම සැක කරමි analyze. ලියකියවිලි මත පදනම්ව, EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM barඑය ඔබට වඩාත් ප්‍රයෝජනවත් කාල තොරතුරු ලබා දෙනු ඇතැයි මම සිතමි . වැඩි විස්තර සඳහා postgresql.org/docs/9.6/static/sql-explain.html බලන්න.
ලාර්ක්ස්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.