పోస్ట్‌గ్రెస్ ఆదేశాన్ని విశ్లేషించండి

Post Gres Adesanni Vislesincandi



డేటాబేస్‌లకు సంబంధించి, పనితీరు అనేది అధిక ప్రాధాన్యతనిచ్చే ఒక లక్షణం. అప్లికేషన్‌లు గరిష్ట వేగం మరియు సామర్థ్యంతో డేటాను ప్రశ్నించగలవని మరియు వ్రాయగలవని ఇది నిర్ధారిస్తుంది.

డేటాబేస్ నిర్వాహకులుగా, మేము డేటాబేస్ పనితీరును మెరుగుపరిచే సాధనాలు మరియు పద్ధతులతో నిమగ్నమై ఉండాలి.

PostgreSQLలో, మేము ఇచ్చిన డేటాబేస్ ప్రశ్న యొక్క అమలు ప్రణాళిక మరియు పనితీరును విశ్లేషించడానికి అనుమతించే EXPLAIN ANALYZE కమాండ్‌కు ప్రాప్యతను కలిగి ఉన్నాము. డేటాబేస్ ఇంజిన్ ప్రశ్నను ఎలా ప్రాసెస్ చేస్తుందనే దానిపై కమాండ్ వివరణాత్మక సమాచారాన్ని అందిస్తుంది. ఇది నిర్వహించిన కార్యకలాపాల క్రమం, అంచనా వేసిన ప్రశ్న ఖర్చులు, అమలు సమయం మరియు మరిన్నింటిని కలిగి ఉంటుంది.







మేము డేటాబేస్ ప్రశ్నలను గుర్తించడానికి అలాగే సంభావ్య పనితీరు అడ్డంకులను గుర్తించడానికి మరియు పరిష్కరించడానికి ఈ సమాచారాన్ని ఉపయోగించవచ్చు.



ప్రశ్న పనితీరును వీక్షించడానికి మరియు ఆప్టిమైజ్ చేయడానికి PostgreSQLలో EXPLAIN ANALYZE ఆదేశాన్ని ఎలా ఉపయోగించాలో ఈ ట్యుటోరియల్ చర్చిస్తుంది.



PostgreSQL విశ్లేషణను వివరించండి

ఆదేశం చాలా సూటిగా ఉంటుంది. ముందుగా, మనం విశ్లేషించదలిచిన ప్రశ్న ప్రారంభంలో EXPLAIN ANALYZE కమాండ్‌ను ముందుగా ఉంచాలి.





కమాండ్ సింటాక్స్ క్రింది విధంగా ఉంది:

విశ్లేషించడాన్ని వివరించండి

మీరు ఆదేశాన్ని అమలు చేసిన తర్వాత, అందించిన ప్రశ్న గురించిన వివరణాత్మక అవుట్‌పుట్‌ను PostgreSQL అందిస్తుంది.



వివరణ విశ్లేషణ ప్రశ్న అవుట్‌పుట్‌ను అర్థం చేసుకోవడం

పేర్కొన్నట్లుగా, మేము EXPLAIN ANALYZE ఆదేశాన్ని అమలు చేసిన తర్వాత, PostgreSQL ప్రశ్న ప్రణాళిక మరియు అమలు గణాంకాల యొక్క వివరణాత్మక నివేదికను రూపొందిస్తుంది.

అవుట్‌పుట్ ఉపయోగకరమైన సమాచారాన్ని కలిగి ఉన్న నిలువు వరుసల సమితిని కలిగి ఉంటుంది. ఫలిత నిలువు వరుసలు వాటి సంబంధిత అర్థంతో చూపబడ్డాయి:

ప్రశ్న ప్రణాళిక – ఈ కాలమ్ పేర్కొన్న ప్రశ్న యొక్క అమలు ప్రణాళికను ప్రదర్శిస్తుంది. ఎగ్జిక్యూషన్ ప్లాన్ అనేది ప్రశ్నను విజయవంతంగా పూర్తి చేయడానికి డేటాబేస్ ఇంజిన్ చేసే ఆపరేషన్ల క్రమాన్ని సూచిస్తుంది.

ప్రణాళిక – రెండవ కాలమ్ PLAN కాలమ్. ఇది ఎగ్జిక్యూషన్ ప్లాన్‌లోని ప్రతి ఆపరేషన్ లేదా స్టెప్ యొక్క వచన ప్రాతినిధ్యాన్ని కలిగి ఉంటుంది. మళ్ళీ, ప్రతి ఆపరేషన్ ఆపరేషన్ల సోపానక్రమాన్ని సూచించడానికి ఇండెంట్ చేయబడింది.

మొత్తం ఖర్చు – మొత్తం ధర కాలమ్ ప్రశ్న యొక్క అంచనా మొత్తం ధరను సూచిస్తుంది. ఖర్చు అనేది డేటాబేస్ క్వెరీ ప్లానర్ ఆప్టిమల్ ఎగ్జిక్యూషన్ ప్లాన్‌ని నిర్ణయించడానికి ఉపయోగించే సాపేక్ష కొలతను సూచిస్తుంది.

అసలైన వరుసలు – ఈ కాలమ్ ప్రశ్న అమలులో ప్రతి దశలో ప్రాసెస్ చేయబడిన వరుసల ఖచ్చితమైన సంఖ్యను చూపుతుంది.

వాస్తవ సమయం - ఈ కాలమ్ ప్రతి ఆపరేషన్ ద్వారా తీసుకున్న వాస్తవ సమయాన్ని చూపుతుంది, ఇందులో ఆపరేషన్ యొక్క అమలు సమయం మరియు వనరులపై గడిపిన సమయం రెండూ ఉంటాయి.

ప్రణాళికా సమయం - ఈ నిలువు వరుస అమలు ప్రణాళికను రూపొందించడానికి ప్రశ్న ప్లానర్ తీసుకునే సమయాన్ని చూపుతుంది. ఇందులో క్వెరీ ఆప్టిమైజేషన్ మొత్తం సమయం మరియు ప్లాన్ జనరేషన్ ఉంటాయి.

అమలు సమయం – ఈ కాలమ్ ప్రశ్నను అమలు చేయడానికి మొత్తం సమయాన్ని చూపుతుంది. ఇది ప్రణాళిక మరియు క్వెరీ ఎగ్జిక్యూషన్ సమయాన్ని వెచ్చించే సమయాన్ని కూడా కలిగి ఉంటుంది.

PostgreSQL వివరించండి విశ్లేషణ ఉదాహరణ

EXPLAIN ANALYZE స్టేట్‌మెంట్‌ని ఉపయోగించే కొన్ని ప్రాథమిక ఉదాహరణలను చూద్దాం.

ఉదాహరణ 1: స్టేట్‌మెంట్‌ని ఎంచుకోండి
PostgreSQLలో ఒక సాధారణ ఎంపిక చేసిన స్టేట్‌మెంట్ యొక్క అమలును చూపించడానికి EXPLAIN ANALYZE స్టేట్‌మెంట్‌ని ఉపయోగిస్తాము.

id > 3 ఉన్న wp_users నుండి *ని ఎంపిక చేసి విశ్లేషించండి;

మేము మునుపటి స్టేట్‌మెంట్‌ను అమలు చేసిన తర్వాత, మనం ఈ క్రింది విధంగా అవుట్‌పుట్ పొందాలి:

ప్రశ్న ప్రణాళిక
------------------------------------------------- -------------------
wp_users పై Seq స్కాన్  (ఖర్చు=0.00..10.38 అడ్డు వరుసలు=10 వెడల్పు=2256) (వాస్తవ సమయం=0.009..0.010 అడ్డు వరుసలు=7 లూప్‌లు=1)
ఫిల్టర్: (id > 3)
ఫిల్టర్ ద్వారా తీసివేయబడిన అడ్డు వరుసలు: 3
ప్రణాళిక సమయం: 0.995 ms
అమలు సమయం: 0.021 ms
(5 వరుసలు)

ఈ సందర్భంలో, ప్రశ్న wp_users పట్టికలో క్వెరీ సీక్వెన్షియల్ స్కాన్ చేస్తుందని క్వెరీ ప్లాన్ విభాగం సూచించడాన్ని మనం చూడవచ్చు. ఫిల్టర్ లైన్ ఫలిత అడ్డు వరుసలను ఫిల్టర్ చేయడానికి ఉపయోగించే పరిస్థితిని సూచిస్తుంది.

ఫిల్టర్ కండిషన్ ద్వారా తొలగించబడిన అడ్డు వరుసల సంఖ్యను చూపే 'ఫిల్టర్ ద్వారా తీసివేయబడిన అడ్డు వరుసలు'ని మేము చూస్తాము.

చివరగా, అమలు సమయం ప్రశ్న యొక్క మొత్తం అమలు సమయాన్ని చూపుతుంది. ఈ సందర్భంలో, ప్రశ్న 0.021ms పడుతుంది.

ఉదాహరణ 2: చేరడాన్ని విశ్లేషించడం
SQL చేరికతో కూడిన మరింత సంక్లిష్టమైన ప్రశ్నను తీసుకుందాం. దీని కోసం, మేము పగిలా నమూనా డేటాబేస్ను ఉపయోగిస్తాము. మీరు ప్రదర్శన ప్రయోజనం కోసం మీ మెషీన్‌లో నమూనా డేటాబేస్‌ను డౌన్‌లోడ్ చేసి, ఇన్‌స్టాల్ చేయవచ్చు.

కింది వాటిలో చూపిన విధంగా మేము సాధారణ చేరికను అమలు చేయవచ్చు:

SELECT f.title, c.name విశ్లేషించడాన్ని వివరించండి
చిత్రం నుండి f
ఫిల్మ్_కేటగిరీ fc ON f.film_id = fc.film_idలో చేరండి
c ON fc.category_id = c.category_id కేటగిరీలో చేరండి;

మేము ఇచ్చిన ప్రశ్నను అమలు చేసిన తర్వాత, మేము ఈ క్రింది విధంగా అవుట్‌పుట్‌ని చూడాలి:

కింది ప్రశ్న ప్రణాళికను అన్వేషిద్దాం:

  1. నెస్టెడ్ లూప్ - చేరడం అనేది నెస్టెడ్ లూప్ జాయిన్ స్ట్రాటజీని ఉపయోగిస్తుందని ఇది సూచిస్తుంది.
  2. హాష్ జాయిన్ - ఈ ఆపరేషన్ ఫిల్మ్_కేటగిరీ మరియు ఫిల్మ్ టేబుల్‌లను హాష్ జాయిన్ అల్గారిథమ్ ఉపయోగించి కలుస్తుంది. ఈ ఆపరేషన్ ధర 77.50 మరియు అంచనా వేయబడిన 1000 వరుసలు. అయితే, ఈ ఆపరేషన్ కోసం తీసుకున్న వాస్తవ సమయం 0.254 నుండి 0.439 మిల్లీసెకన్లు మరియు ఇది 1000 అడ్డు వరుసలను తిరిగి పొందుతుంది.
  3. హాష్ కాండ్ - ఫిల్మ్_ఐడి నిలువు వరుసలు మరియు ఫిల్మ్ టేబుల్స్‌లోని ఫిల్మ్_కేటగిరీ నిలువు వరుసలతో సరిపోలడానికి జాయిన్ కండిషన్ హాష్ జాయిన్‌ను ఉపయోగిస్తుందని ఇది సూచిస్తుంది.
  4. ఫిల్మ్_కేటగిరీలో సీక్ స్కాన్ - ఈ ఆపరేషన్ ఫిల్మ్_కేటగిరీ టేబుల్‌పై 16.00 మరియు అంచనా వేయబడిన 1000 వరుసలతో సీక్వెన్షియల్ స్కాన్ చేస్తుంది. ఈ ఆపరేషన్ కోసం తీసుకున్న వాస్తవ సమయం 0.008 నుండి 0.056 మిల్లీసెకన్లు మరియు ఇది 1000 అడ్డు వరుసలను తిరిగి పొందుతుంది.
  5. ఫిల్మ్‌పై సీక్ స్కాన్ - ఈ ఆపరేషన్‌లో అంచనా వేసిన మరియు వాస్తవ వ్యయాలు మరియు అడ్డు వరుసలతో ఫిల్మ్ టేబుల్‌పై ప్రశ్న సీక్వెన్షియల్ స్కాన్ చేస్తుంది.
  6. Memoize – ఈ ఆపరేషన్ తదుపరి ఉపయోగం కోసం film_category మరియు ఫిల్మ్ టేబుల్‌ల మధ్య చేరిన ఫలితాలను కాష్ చేస్తుంది.
  7. కాష్ కీ - ఇది మెమోయిజేషన్ కోసం ఉపయోగించే కాష్ కీ, film_category నుండి category_id కాలమ్‌పై ఆధారపడి ఉంటుందని ఇది సూచిస్తుంది.
  8. కాష్ మోడ్ - ప్రశ్న లాజికల్ కాష్ మోడ్‌ను ఉపయోగిస్తుందని ఇది సూచిస్తుంది.
  9. హిట్‌లు, మిస్‌లు, ఎవిక్షన్‌లు, ఓవర్‌ఫ్లోలు - మూడు లైన్‌లు కాష్, హిట్‌ల సంఖ్య, మిస్‌లు, ఎవిక్షన్‌లు మరియు ఎగ్జిక్యూషన్ సమయంలో ఓవర్‌ఫ్లోల గురించి గణాంకాలను అందిస్తాయి. ఈ బ్లాక్ క్వెరీ ఎగ్జిక్యూషన్ సమయంలో మెమరీ వినియోగాన్ని కూడా కలిగి ఉంటుంది.
  10. category_pkeyని ఉపయోగించి సూచిక స్కాన్ - ఇది ప్రాథమిక కీ సూచికను ఉపయోగించి వర్గం పట్టికలో సూచిక స్కాన్ చేసే ఆపరేషన్‌ను చూపుతుంది.
  11. ఇండెక్స్ కాండ్ – ఇండెక్స్ స్కాన్ కేటగిరీ టేబుల్‌లోని category_id కాలమ్‌తో సరిపోలే షరతుపై ఆధారపడి ఉంటుందని ఇది చూపిస్తుంది.
  12. ప్రణాళికా సమయం - ఈ పంక్తి 3.005 మిల్లీసెకన్ల ప్రశ్న ప్రణాళిక కోసం తీసుకున్న సమయాన్ని చూపుతుంది.
  13. అమలు సమయం - చివరగా, ఈ లైన్ 0.745 మిల్లీసెకన్ల ప్రశ్న యొక్క మొత్తం అమలు సమయాన్ని చూపుతుంది.

అక్కడ మీ దగ్గర ఉంది! PostgreSQLలో సాధారణ చేరికను అమలు చేయడం గురించి వివరణాత్మక సమాచారం.

ముగింపు

మీరు PostgreSQLలో EXPLAIN ANALYZE స్టేట్‌మెంట్ యొక్క శక్తి మరియు వినియోగాన్ని కనుగొన్నారు. EXPLAIN ANALYZE స్టేట్‌మెంట్ అనేది ప్రశ్న విశ్లేషణ మరియు ఆప్టిమైజేషన్ కోసం ఒక శక్తివంతమైన సాధనం. సమర్థవంతమైన మరియు తక్కువ వనరు-ఇంటెన్సివ్ ప్రశ్నలను రూపొందించడానికి ఈ సాధనాన్ని ఉపయోగించండి.