Postgres கட்டளையை விளக்கவும்

Postgres Kattalaiyai Vilakkavum



தரவுத்தளங்களைப் பொறுத்தவரை, செயல்திறன் அதிக முன்னுரிமை எடுக்கும் ஒரு அம்சமாகும். பயன்பாடுகள் அதிகபட்ச வேகம் மற்றும் செயல்திறனுடன் தரவை வினவலாம் மற்றும் எழுத முடியும் என்பதை இது உறுதி செய்கிறது.

தரவுத்தள நிர்வாகிகளாக, தரவுத்தள செயல்திறனை மேம்படுத்துவதற்கான கருவிகள் மற்றும் முறைகளில் நாம் ஆர்வமாக இருக்க வேண்டும்.

PostgreSQL இல், கொடுக்கப்பட்ட தரவுத்தள வினவலின் செயலாக்கத் திட்டம் மற்றும் செயல்திறனைப் பகுப்பாய்வு செய்ய அனுமதிக்கும் EXPLAIN ANALYZE கட்டளைக்கான அணுகல் எங்களிடம் உள்ளது. தரவுத்தள இயந்திரம் வினவலை எவ்வாறு செயலாக்குகிறது என்பது பற்றிய விரிவான தகவலை கட்டளை வழங்குகிறது. இது செயல்பாட்டின் வரிசை, மதிப்பிடப்பட்ட வினவல் செலவுகள், செயல்படுத்தும் நேரம் மற்றும் பலவற்றை உள்ளடக்கியது.







தரவுத்தள வினவல்களை அடையாளம் காணவும் அத்துடன் சாத்தியமான செயல்திறன் இடையூறுகளைக் கண்டறிந்து சரிசெய்யவும் இந்தத் தகவலைப் பயன்படுத்தலாம்.



வினவல் செயல்திறனைப் பார்க்கவும் மேம்படுத்தவும் PostgreSQL இல் EXPLAIN ANALYZE கட்டளையை எவ்வாறு பயன்படுத்துவது என்பதை இந்தப் பயிற்சி விவாதிக்கிறது.



PostgreSQL பகுப்பாய்வை விளக்கவும்

கட்டளை மிகவும் நேரடியானது. முதலில், நாம் பகுப்பாய்வு செய்ய விரும்பும் வினவலின் தொடக்கத்தில் EXPLAIN ANALYZE கட்டளையை முன்வைக்க வேண்டும்.





கட்டளை தொடரியல் பின்வருமாறு:

பகுப்பாய்வை விளக்கவும்

நீங்கள் கட்டளையை இயக்கியதும், வழங்கப்பட்ட வினவல் பற்றிய விரிவான வெளியீட்டை PostgreSQL வழங்கும்.



EXPLAIN ANALYZE வினவல் வெளியீட்டைப் புரிந்துகொள்வது

குறிப்பிட்டுள்ளபடி, EXPLAIN ANALYZE கட்டளையை இயக்கியவுடன், PostgreSQL வினவல் திட்டம் மற்றும் செயல்படுத்தும் புள்ளிவிவரங்களின் விரிவான அறிக்கையை உருவாக்குகிறது.

வெளியீடு பயனுள்ள தகவல்களைக் கொண்ட நெடுவரிசைகளின் தொகுப்பைக் கொண்டுள்ளது. இதன் விளைவாக வரும் நெடுவரிசைகள் அவற்றின் அர்த்தத்துடன் காட்டப்பட்டுள்ளன:

வினவல் திட்டம் - இந்த நெடுவரிசை குறிப்பிட்ட வினவலின் செயலாக்கத் திட்டத்தைக் காட்டுகிறது. வினவலை வெற்றிகரமாக முடிக்க தரவுத்தள இயந்திரம் செய்யும் செயல்பாடுகளின் வரிசையை செயல்படுத்தும் திட்டம் குறிக்கிறது.

திட்டம் – இரண்டாவது நெடுவரிசை PLAN நெடுவரிசை. இது செயல்படுத்தும் திட்டத்தில் ஒவ்வொரு செயல்பாடு அல்லது படியின் உரைப் பிரதிநிதித்துவத்தைக் கொண்டுள்ளது. மீண்டும், ஒவ்வொரு செயல்பாடும் செயல்பாடுகளின் படிநிலையைக் குறிக்க உள்தள்ளப்பட்டுள்ளது.

மொத்த செலவு - மொத்த விலை நெடுவரிசை வினவலின் மதிப்பிடப்பட்ட மொத்த செலவைக் குறிக்கிறது. செலவு என்பது தரவுத்தள வினவல் திட்டமிடுபவர் உகந்த செயலாக்கத் திட்டத்தைத் தீர்மானிக்கப் பயன்படுத்தும் ஒப்பீட்டு அளவைக் குறிக்கிறது.

உண்மையான வரிசைகள் - இந்த நெடுவரிசை வினவல் செயலாக்கத்தின் ஒவ்வொரு படியிலும் செயலாக்கப்படும் வரிசைகளின் சரியான எண்ணிக்கையைக் காட்டுகிறது.

உண்மையான நேரம் - இந்த நெடுவரிசை ஒவ்வொரு செயல்பாட்டின் உண்மையான நேரத்தையும் காட்டுகிறது, இதில் செயல்பாட்டின் செயல்பாட்டின் நேரம் மற்றும் வளங்களில் செலவழித்த நேரம் ஆகியவை அடங்கும்.

திட்டமிடல் நேரம் - வினவல் திட்டமிடுபவர் செயல்படுத்தும் திட்டத்தை உருவாக்க எடுக்கும் நேரத்தை இந்த நெடுவரிசை காட்டுகிறது. வினவல் தேர்வுமுறையின் மொத்த நேரம் மற்றும் திட்ட உருவாக்கம் ஆகியவை இதில் அடங்கும்.

செயல்படுத்தும் நேரம் - இந்த நெடுவரிசை வினவலைச் செயல்படுத்துவதற்கான மொத்த நேரத்தைக் காட்டுகிறது. திட்டமிடல் மற்றும் வினவல் செயல்படுத்தும் நேரத்தைச் செலவிடும் நேரமும் இதில் அடங்கும்.

PostgreSQL விளக்கும் பகுப்பாய்வு உதாரணம்

விளக்க பகுப்பாய்வு அறிக்கையைப் பயன்படுத்துவதற்கான சில அடிப்படை எடுத்துக்காட்டுகளைப் பார்ப்போம்.

எடுத்துக்காட்டு 1: அறிக்கையைத் தேர்ந்தெடுக்கவும்
PostgreSQL இல் ஒரு எளிய தேர்ந்தெடுக்கப்பட்ட அறிக்கையின் செயல்பாட்டைக் காட்ட, EXPLAIN ANALYZE அறிக்கையைப் பயன்படுத்துவோம்.

ஐடி > 3 உள்ள wp_users இலிருந்து * என்பதைத் தேர்ந்தெடுங்கள் என்பதை விளக்கவும்;

முந்தைய அறிக்கையை இயக்கியதும், பின்வருமாறு ஒரு வெளியீட்டைப் பெற வேண்டும்:

வினவல் திட்டம்
------------------------------------------------- -------------------
wp_users இல் Seq ஸ்கேன்  (செலவு=0.00..10.38 வரிசைகள்=10 அகலம்=2256) (உண்மையான நேரம்=0.009..0.010 வரிசைகள்=7 சுழல்கள்=1)
வடிகட்டி: (ஐடி > 3)
வடிகட்டி மூலம் அகற்றப்பட்ட வரிசைகள்: 3
திட்டமிடல் நேரம்: 0.995 எம்.எஸ்
செயல்படுத்தும் நேரம்: 0.021 ms
(5 வரிசைகள்)

இந்த நிலையில், வினவல் திட்டப் பிரிவு, வினவல் wp_users அட்டவணையில் வரிசையாக ஸ்கேன் செய்வதைக் குறிப்பிடுவதைக் காணலாம். வடிகட்டி வரியானது விளைந்த வரிசைகளை வடிகட்ட பயன்படுத்தப்படும் நிபந்தனையைக் குறிக்கிறது.

வடிகட்டி நிபந்தனையால் நீக்கப்பட்ட வரிசைகளின் எண்ணிக்கையைக் காட்டும் “வடிகட்டி மூலம் அகற்றப்பட்ட வரிசைகள்” என்பதைக் காண்போம்.

இறுதியாக, செயல்படுத்தும் நேரம் வினவலின் மொத்த செயலாக்க நேரத்தைக் காட்டுகிறது. இந்த வழக்கில், வினவல் 0.021ms எடுக்கும்.

எடுத்துக்காட்டு 2: ஒரு சேர்வை பகுப்பாய்வு செய்தல்
ஒரு SQL சேருதலை உள்ளடக்கிய மிகவும் சிக்கலான வினவலை எடுத்துக்கொள்வோம். இதற்கு, நாங்கள் பகிலா மாதிரி தரவுத்தளத்தைப் பயன்படுத்துகிறோம். செயல்விளக்க நோக்கத்திற்காக உங்கள் கணினியில் மாதிரி தரவுத்தளத்தை பதிவிறக்கம் செய்து நிறுவலாம்.

பின்வருவனவற்றில் காட்டப்பட்டுள்ளபடி நாம் ஒரு எளிய இணைப்பை இயக்கலாம்:

SELECT f.title, c.name பகுப்பாய்வு செய்யவும்
ஃபிலிம் எஃப்
f.film_id = fc.film_id இல் film_category fc இல் சேரவும்
c ON fc.category_id = c.category_id;

கொடுக்கப்பட்ட வினவலை இயக்கியதும், வெளியீட்டை பின்வருமாறு பார்க்க வேண்டும்:

பின்வரும் வினவல் திட்டத்தை ஆராய்வோம்:

  1. நெஸ்டட் லூப் - இணைப்பானது உள்ளமை லூப் ஜாயின் உத்தியைப் பயன்படுத்துகிறது என்பதை இது குறிக்கிறது.
  2. ஹாஷ் சேர் - இந்த செயல்பாடு ஹாஷ் ஜாயின் அல்காரிதத்தைப் பயன்படுத்தி ஃபிலிம்_வகை மற்றும் ஃபிலிம் டேபிள்களுடன் இணைகிறது. இந்த செயல்பாட்டின் விலை 77.50 மற்றும் 1000 வரிசைகள் என மதிப்பிடப்பட்டுள்ளது. இருப்பினும், இந்த செயல்பாட்டிற்கு எடுக்கப்பட்ட உண்மையான நேரம் 0.254 முதல் 0.439 மில்லி விநாடிகள் ஆகும், மேலும் இது 1000 வரிசைகளை மீட்டெடுக்கிறது.
  3. ஹாஷ் காண்ட் - இது, ஃபிலிம்_ஐடி நெடுவரிசைகள் மற்றும் ஃபிலிம் டேபிள்களில் உள்ள ஃபிலிம்_வகை நெடுவரிசைகளுடன் பொருந்த, ஜாயின் நிபந்தனை ஹாஷ் இணைப்பைப் பயன்படுத்துகிறது என்பதைக் குறிக்கிறது.
  4. Film_category இல் Seq ஸ்கேன் - இந்த செயல்பாடு 16.00 மற்றும் மதிப்பிடப்பட்ட 1000 வரிசைகள் செலவில் ஃபிலிம்_வகை அட்டவணையில் ஒரு தொடர் ஸ்கேன் செய்கிறது. இந்த செயல்பாட்டிற்கு எடுக்கப்பட்ட உண்மையான நேரம் 0.008 முதல் 0.056 மில்லி விநாடிகள் ஆகும், மேலும் இது 1000 வரிசைகளை மீட்டெடுக்கிறது.
  5. திரைப்படத்தில் Seq ஸ்கேன் - வினவல் இந்தச் செயல்பாட்டின் விளைவாக மதிப்பிடப்பட்ட மற்றும் உண்மையான செலவுகள் மற்றும் வரிசைகளுடன் ஃபிலிம் டேபிளில் ஒரு தொடர் ஸ்கேன் செய்கிறது.
  6. நினைவூட்டு - இந்தச் செயல்பாடு, பிலிம்_வகை மற்றும் ஃபிலிம் டேபிள்களுக்கு இடையேயான இணைப்பின் முடிவுகளை அடுத்தடுத்த பயன்பாட்டிற்காக தேக்குகிறது.
  7. கேச் கீ - நினைவூட்டலுக்குப் பயன்படுத்தப்படும் கேச் கீ, film_category இலிருந்து வகை_ஐடி நெடுவரிசையை அடிப்படையாகக் கொண்டது என்பதை இது குறிக்கிறது.
  8. கேச் பயன்முறை - வினவல் தருக்க கேச் பயன்முறையைப் பயன்படுத்துகிறது என்பதை இது குறிக்கிறது.
  9. ஹிட்ஸ், மிஸ்கள், எவிக்ஷன்ஸ், ஓவர்ஃப்ளோஸ் - மூன்று வரிகள் கேச், ஹிட்களின் எண்ணிக்கை, மிஸ்கள், வெளியேற்றங்கள் மற்றும் செயல்பாட்டின் போது ஓவர்ஃப்ளோக்கள் பற்றிய புள்ளிவிவரங்களை வழங்குகிறது. இந்த தொகுதியில் வினவல் செயல்படுத்தும் போது நினைவகப் பயன்பாடும் அடங்கும்.
  10. category_pkey ஐப் பயன்படுத்தி குறியீட்டு ஸ்கேன் - முதன்மை விசை குறியீட்டைப் பயன்படுத்தி வகை அட்டவணையில் குறியீட்டு ஸ்கேன் செய்யும் செயல்பாட்டை இது காட்டுகிறது.
  11. இன்டெக்ஸ் கான்ட் - இது வகை அட்டவணையில் உள்ள category_id நெடுவரிசையுடன் பொருந்தக்கூடிய நிபந்தனையின் அடிப்படையில் குறியீட்டு ஸ்கேன் செய்யப்படுகிறது என்பதைக் காட்டுகிறது.
  12. திட்டமிடல் நேரம் - இந்த வரியானது 3.005 மில்லி விநாடிகள் வினவல் திட்டமிடலுக்கு எடுத்துக்கொள்ளப்பட்ட நேரத்தைக் காட்டுகிறது.
  13. செயல்படுத்தும் நேரம் - இறுதியாக, இந்த வரியானது 0.745 மில்லி வினாடிகளில் உள்ள வினவலின் மொத்த செயலாக்க நேரத்தைக் காட்டுகிறது.

இதோ! PostgreSQL இல் ஒரு எளிய இணைப்பின் செயல்பாட்டைப் பற்றிய விரிவான தகவல்.

முடிவுரை

PostgreSQL இல் EXPLAIN ANALYZE அறிக்கையின் சக்தி மற்றும் பயன்பாட்டைக் கண்டறிந்துள்ளீர்கள். EXPLAIN ANALYZE அறிக்கையானது வினவல் பகுப்பாய்வு மற்றும் தேர்வுமுறைக்கான ஒரு சக்திவாய்ந்த கருவியாகும். திறமையான மற்றும் குறைந்த ஆதார-தீவிர வினவல்களை உருவாக்க இந்தக் கருவியைப் பயன்படுத்தவும்.