Cloud SQL के लिए क्वेरी इनसाइट के बारे में जानकारी

1. शुरू करने से पहले

Cloud SQL के लिए क्वेरी की अहम जानकारी की मदद से, Cloud SQL के डेटाबेस के लिए क्वेरी की परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाया जा सकता है, उनका विश्लेषण किया जा सकता है, और उन्हें रोका जा सकता है. यह आपको अपने-आप काम करने की सुविधा देती है, बेहतर तरीके से निगरानी करती है, और गड़बड़ी की पहचान से जुड़ी जानकारी देती है. इससे परफ़ॉर्मेंस से जुड़ी समस्याओं की मूल वजहों का पता लगाने के अलावा, कई और चीज़ों का भी पता लगाया जाता है.

इस कोडलैब में, आपको Cloud SQL for PostgreSQL इंस्टेंस सेट अप करने, Cloud SQL इंस्टेंस को बैकएंड स्टोरेज के तौर पर इस्तेमाल करने के लिए Node.js ऐप्लिकेशन डिप्लॉय करने का तरीका पता चलेगा. इसके बाद, क्वेरी देखने और मॉनिटर करने के लिए, क्वेरी इनसाइट का इस्तेमाल करें.

ज़रूरी शर्तें

  • Node.js प्रोग्रामिंग भाषा और टूल के बारे में बुनियादी जानकारी

आपको क्या करना होगा

  • Node.js ऐप्लिकेशन में Cloud SQL का इस्तेमाल करें.
  • Node.js ऐप्लिकेशन में एसक्यूएल टिप्पणी करने की सुविधा चालू करें.
  • क्वेरी की परफ़ॉर्मेंस पर नज़र रखने और उसकी जांच करने के लिए, Cloud SQL के लिए क्वेरी की अहम जानकारी का इस्तेमाल करें.

आपको इन चीज़ों की ज़रूरत होगी

  • ऐसा Google Cloud खाता जिसमें आपके पास एपीआई चालू करने और सेवाएं बनाने की अनुमतियां हों

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Cloud Console में साइन इन करें और एक नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.)

इस्तेमाल किए जा रहे प्रोजेक्ट का प्रोजेक्ट आईडी याद रखें. बाद में, इस कोडलैब को इस कोडलैब में PROJECT-ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.

इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. पक्का करें कि आपने "साफ़ करें और ज़्यादा जानें" में दिए गए निर्देशों का पालन किया हो सेक्शन में बताया गया है कि संसाधनों को बंद कैसे किया जाए, ताकि आपको इस ट्यूटोरियल के अलावा बिलिंग न करनी पड़े. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें पर क्लिक करें.

Cloud Shell को चालू करो

अगर आपने Cloud Shell का इस्तेमाल पहले कभी नहीं किया है, तो आपको इसके बारे में जानकारी देने वाली एक इंटरमीडिएट स्क्रीन (पेज के फ़ोल्ड के नीचे) दिखेगी. अगर ऐसा है, तो जारी रखें पर क्लिक करें (यह आपको फिर कभी नहीं दिखेगा). एक बार इस्तेमाल होने वाली स्क्रीन कुछ इस तरह दिखती है:

क्लाउड शेल वाली डायलॉग विंडो

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

Cloud Shell टर्मिनल

इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है.

  1. Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि सही प्रोजेक्ट का इस्तेमाल किया जा रहा है:

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है.

यह पुष्टि करने के लिए नीचे दिया गया कमांड चलाएं कि सही प्रोजेक्ट का इस्तेमाल किया जा रहा है.

gcloud config list project

अगर आपको Cloud Shell को खोलने के दौरान चुने गए प्रोजेक्ट के बजाय किसी दूसरे प्रोजेक्ट का इस्तेमाल करना है, तो नया प्रोजेक्ट सेट अप करें. इसके लिए, यह तरीका अपनाएं:

gcloud config set project <PROJECT-ID>;

3. क्वेरी इनसाइट की सुविधा चालू करके, PostgreSQL के लिए Cloud SQL इंस्टेंस सेट अप करना

  1. Cloud Shell के लॉन्च होने के बाद, कमांड लाइन का इस्तेमाल करके my-instance नाम का एक नया Cloud SQL इंस्टेंस बनाया जा सकता है. इसमें क्वेरी इनसाइट की सुविधा चालू होगी:
gcloud sql instances create my-instance --tier db-f1-micro --database-version=POSTGRES_12 --region=us-central --root-password=<PASSWORD> --insights-config-query-insights-enabled --insights-config-record-application-tags --insights-config-record-client-address

यहां झंडों और उनके मतलब के बारे में कम शब्दों में जानकारी दी गई है:

  • --tier db-f1-micro फ़्लैग में ऐसे मशीन टाइप के बारे में बताया जाता है जिसमें बहुत कम संसाधन होते हैं. ऐसा इसलिए, क्योंकि इसे डेवलपमेंट के मकसद से बनाया गया है. इसलिए, आपको कोडलैब के लिए बहुत ज़्यादा संसाधनों की ज़रूरत नहीं होती. टियर के बारे में ज़्यादा जानकारी यहां देखी जा सकती है.
  • --database-version=POSTGRES_12 फ़्लैग एक इंस्टेंस बनाता है, जो PostgreSQL वर्शन 12 होगा.
  • --region=us-central फ़्लैग उस क्षेत्र के बारे में बताता है जहां इंस्टेंस बनाया जाएगा.
  • --root-password=<PASSWORD> फ़्लैग की मदद से, रूट postgres के उपयोगकर्ता का पासवर्ड तय किया जा सकता है. <Password> को बदलना पक्का करें अपनी पसंद का पासवर्ड डालकर साइन इन करें.
  • --insights-config-query-insights-enabled फ़्लैग आपके इंस्टेंस के लिए, क्वेरी के बारे में अहम जानकारी पाने की सुविधा चालू करता है.
  • --insights-config-record-application-tags फ़्लैग की सहायता से ऐप्लिकेशन टैग रिकॉर्ड किए जा सकते हैं. आप बाद के अनुभाग में अनुप्रयोग टैग के बारे में और जानेंगे.
  • --insights-config-record-client-address फ़्लैग की मदद से, क्वेरी इनसाइट की मदद से क्लाइंट के आईपी पते रिकॉर्ड किए जा सकते हैं.

आपसे अपने प्रोजेक्ट के लिए, sqladmin.googleapis.com एपीआई को चालू करने के लिए कहा जा सकता है. अगर आपसे पूछा जाए, तो एपीआई को चालू करने के लिए y को चुनें.

इंस्टेंस बनाने में कुछ मिनट लगेंगे. इस कार्रवाई के पूरा होने के बाद, आपका इंस्टेंस इस्तेमाल के लिए तैयार हो जाएगा.

  1. अब एक डेटाबेस बनाएं, जिसका इस्तेमाल आपको सैंपल ऐप्लिकेशन के लिए करना है:
gcloud sql databases create votesdb --instance my-instance

Cloud Console की मदद से भी, इंस्टेंस को ऐक्सेस और कॉन्फ़िगर किया जा सकता है.

  1. नीचे दिए गए निर्देश की मदद से, PROJECT-ID:ZONE-ID:INSTANCE-ID फ़ॉर्मैट में इंस्टेंस कनेक्शन का नाम पाएं. आपको बाद में Node.js ऐप्लिकेशन को कॉन्फ़िगर करने में इसका इस्तेमाल करना होगा.
gcloud sql instances describe my-instance | grep connectionName

4. ऐप्लिकेशन के साथ इस्तेमाल करने के लिए, सेवा खाता बनाएं

सेवा खातों का इस्तेमाल, आपके GCP प्रोजेक्ट में अलग-अलग सेवाओं का इस्तेमाल करने की अनुमतियां देने के लिए किया जाता है. इस कोडलैब के लिए, आपको Cloud SQL प्रॉक्सी को अपने Cloud SQL इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, एक कोडलैब की ज़रूरत होगी.

Console में सेवा खाता बनाना

  1. आईएएम सेवा खातों के पेज पर जाएं और पेज पर सबसे ऊपर मौजूद, -PCvKR3aQ2zKaUcml8w9lW4JNlmYtN5-r2--mC6kMUp6HOXW8wT1wUvLoYEPU-aA-oGskT3XkAqfNwRAKkZkllwTe6ugdrUVFwaeKT0M9Y1RwHA8JPZeGmCWYBfr8d9TSycNMIRsLw बटन पर क्लिक करें.
  2. अपने सेवा खाते को कोई यूनीक नाम और आईडी दें. इसके बाद, बनाएं पर क्लिक करें.
  3. अगले पेज पर, 'भूमिका चुनें' के ड्रॉप-डाउन पर क्लिक करें. "Cloud SQL" के लिए फ़िल्टर और Cloud SQL क्लाइंट की भूमिका चुनें. जारी रखें पर क्लिक करें. इसके बाद, हो गया पर क्लिक करें.
  4. सेवा खाता बनाने के बाद, अपने नए सेवा खाते के लिए कार्रवाइयां में दिए गए तीन बिंदुओं पर क्लिक करें और 'कुंजियां मैनेज करें' चुनें. अगले पेज पर, कुंजी जोड़ें को चुनें. इसके बाद, नई कुंजी बनाएं को चुनें. JSON को चुना जाएगा; उसे डिफ़ॉल्ट बनाए रखें और बनाएं पर क्लिक करें. इससे .json निजी कुंजी फ़ाइल डाउनलोड हो जाएगी. बंद करें पर क्लिक करें.
  5. Cloud Shell में, ज़्यादा मेन्यू के लिए तीन बिंदुओं पर क्लिक करें और फ़ाइल अपलोड करें चुनें. अपनी लोकल मशीन पर डाउनलोड की गई .json फ़ाइल को ब्राउज़ करें और उसे चुनें. इससे .json फ़ाइल, Cloud Shell की आपकी होम डायरेक्ट्री में अपलोड हो जाएगी.

5. Cloud SQL प्रॉक्सी को इंस्टॉल और लॉन्च करें

आपको ऐप्लिकेशन और डेटाबेस इंस्टेंस के बीच कम्यूनिकेशन के लिए, Cloud SQL प्रॉक्सी का इस्तेमाल करना होगा.

  1. Cloud SQL प्रॉक्सी डाउनलोड करें. Cloud Shell में, ये काम किए जा सकते हैं:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy
  1. <INSTANCE_CONNECTION_NAME> को Cloud SQL इंस्टेंस की खास जानकारी देने वाले पेज से कॉपी किए गए इंस्टेंस कनेक्शन नाम से बदलने के बाद, प्रॉक्सी को नीचे बताए गए तरीके से चलाएं.
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 &

अगर यह प्रोसेस पूरी होती है, तो आपको आउटपुट की कुछ लाइनें दिखेंगी जिनके आखिर में Ready for new connections मैसेज होगा.

6. अपने डिवाइस पर ऐप्लिकेशन का क्लोन बनाएं और उसकी जांच करें

  1. सैंपल ऐप्लिकेशन के रेपो का क्लोन बनाएं और ऐप्लिकेशन को चलाने के लिए ज़रूरी पैकेज इंस्टॉल करें.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples/

cd nodejs-docs-samples/cloud-sql/postgres/knex

npm install
  1. इन एनवायरमेंट वैरिएबल को सेट करें:
export INSTANCE_CONNECTION_NAME='<PROJECT-ID>:<ZONE-ID>:<INSTANCE-ID>'
export DB_HOST='127.0.0.1:5432'
export DB_USER='postgres'
export DB_PASS='<PASSWORD>'
export DB_NAME='votesdb'
  1. सैंपल के तौर पर इस्तेमाल किया जाने वाला ऐप्लिकेशन शुरू करें.
npm start
  1. Cloud Shell में, वेब झलक वेब प्रीव्यू का आइकॉन पर क्लिक करें. इसके बाद, पोर्ट 8080 पर झलक देखें को चुनें.

पोर्ट 8080 मेन्यू आइटम की झलक देखें

आपको टैब बनाम Spaces वोटिंग ऐप्लिकेशन दिखाई देना चाहिए, जैसा कि आपके ब्राउज़र में यहां दिखाया गया है:

टैब बनाम Spaces में वोटिंग ऐप्लिकेशन का स्क्रीनशॉट

  1. कुछ वोट करने के लिए बटन पर क्लिक करें और कुछ डेटा डेटाबेस में सेव करें.

7. सभी वोट देखने के लिए पेज जोड़ें

चूंकि यह नमूना अनुप्रयोग बहुत आसान है, इसलिए आप सभी मतों को प्रदर्शित करने वाला एक अतिरिक्त पृष्ठ जोड़ेंगे. ऐसा करने की मुख्य वजह यह है कि बाद में क्वेरी इनसाइट का इस्तेमाल करते समय आपके पास ज़्यादा डेटा हो.

  1. सैंपल ऐप्लिकेशन का इस्तेमाल बंद करने के लिए, अपने Cloud Shell में Ctrl+c डालें.
  2. Cloud Shell में, क्लाउड शेल एडिटर लॉन्च करने के लिए, &#39;एडिटर&#39; बटन खोलें बटन पर क्लिक करें.
  3. फ़ाइल एक्सप्लोरर में, nodejs-docs-samples/cloud-sql/postgres/knex/server.js को ढूंढें और एडिटर में server.js फ़ाइल को लोड करने के लिए, उस पर क्लिक करें.

getVotes फ़ंक्शन को तय करने के बाद, नीचे दिया गया कोड जोड़ें:

/**
 * Retrieve all vote records from the database.
 *
 * @param {object} pool The Knex connection object.
 * @returns {Promise}
 */
const getAllVotes = async pool => {
  return await pool
    .select('candidate', 'time_cast')
    .from('votes')
    .orderBy('time_cast', 'desc');
};
  1. जहां दूसरे रास्ते तय किए गए हैं, वहां '/getAllVotes' रास्ते के लिए यह कोड जोड़ें:
app.get('/getAllVotes', async (req, res) => {
  pool = pool || createPool();
  try {
    // Query all votes from the database.
    const votes = await getAllVotes(pool);

    res.render('allvotes.pug', {
      votes: votes,
    });
  } catch (err) {
    console.error(err);
    res
      .status(500)
      .send('Unable to load page; see logs for more details.')
      .end();
  }
});
  1. nodejs-docs-samples/cloud-sql/postgres/knex/views डायरेक्ट्री में allvotes.pug नाम की नई फ़ाइल बनाएं. नीचे दिया गया कोड चिपकाएं:
doctype html
html(lang="en")
  head
    title Tabs VS Spaces

    link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css")
    link(rel="stylesheet", href="https://fonts.googleapis.com/icon?family=Material+Icons")
    script(src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js")
  body

    nav(class="red lighten-1")
      div(class="nav-wrapper")
        a(href="#" class="brand-logo center") Tabs VS Spaces

    div(class="section")

      h4(class="header center") Recent Votes
      ul(class="container collection center")
        each vote in votes
          li(class="collection-item avatar")
            if vote.candidate.trim() === 'TABS'
              i(class="material-icons circle green") keyboard_tab
            else
              i(class="material-icons circle blue") space_bar
            span(class="title") A vote for <b>#{vote.candidate}</b>
            p was cast at #{vote.time_cast}.
  1. Cloud Shell पर वापस जाने और इसे चलाने के लिए, &#39;टर्मिनल खोलें&#39; बटन बटन पर क्लिक करें:
npm start
  1. यह पक्का करने के लिए कि ऐप्लिकेशन काम कर रहा है, 'वेब झलक' से ऐप्लिकेशन खोलें. आपने जो नया पेज जोड़ा है उसे देखने के लिए, ब्राउज़र में यूआरएल में /getAllVotes जोड़ें.

8. ऐप्लिकेशन में एसक्यूएल टिप्पणी करने की सुविधा चालू करें

अब SQL टिप्पणी करने वाले उपयोगकर्ता को इंस्टॉल और चालू किया जाएगा. यह एक ओपन सोर्स लाइब्रेरी है, जो ORMs को टिप्पणियों के साथ एसक्यूएल स्टेटमेंट को बेहतर बनाने के लिए चालू करने से पहले चालू करती है. SQLcommenter कई ORM और फ़्रेमवर्क के साथ काम करता है. इनमें वह फ़्रेमवर्क भी शामिल है जिसका इस्तेमाल सैंपल ऐप्लिकेशन करता है: Knex.js. क्वेरी इनसाइट इन टिप्पणियों में दी गई जानकारी का इस्तेमाल करके, डेटाबेस की परफ़ॉर्मेंस के बारे में खास जानकारी देती है. साथ ही, यह पता लगाती है कि किस ऐप्लिकेशन कोड की वजह से समस्या हो रही है. परफ़ॉर्मेंस ओवरहेड कम हो सकता है. क्वेरी की अहम जानकारी से जुड़ा दस्तावेज़ देखें.

  1. सैंपल ऐप्लिकेशन का इस्तेमाल बंद करने के लिए, अपने Cloud Shell में Ctrl+c डालें.
  2. SQLcommenter की ज़रूरत के पैकेज इंस्टॉल करने के लिए, नीचे दिया गया कमांड चलाएं:
  npm install @google-cloud/sqlcommenter-knex @opencensus/nodejs @opencensus/propagation-tracecontext @opentelemetry/api @opentelemetry/core --save
  1. Cloud Shell में, क्लाउड शेल एडिटर लॉन्च करने के लिए, &#39;एडिटर&#39; बटन खोलें बटन पर क्लिक करें.
  2. फ़ाइल एक्सप्लोरर में, nodejs-docs-samples/cloud-sql/postgres/knex/server.js को ढूंढें और एडिटर में server.js फ़ाइल को लोड करने के लिए, उस पर क्लिक करें.
  3. फ़ाइल में यह कोड ढूंढें:
const process = require('process');

इसके नीचे, यह कोड जोड़ें:

const {wrapMainKnexAsMiddleware} = require('@google-cloud/sqlcommenter-knex');
  1. फ़ाइल में यह कोड ढूंढें:
// Set Content-Type for all responses for these routes.
app.use((req, res, next) => {
  res.set('Content-Type', 'text/html');
  next();
});

इसके नीचे, यह कोड जोड़ें:

app.use(wrapMainKnexAsMiddleware(Knex, {
    traceparent: true,
    tracestate: true,
    route: true,
    db_driver: true
}));

यह प्रोसेस पूरी होने के बाद, आपका कोड कुछ ऐसा दिखना चाहिए:

...
// Require process, so we can mock environment variables.
const process = require('process');

const {wrapMainKnexAsMiddleware} = require('@google-cloud/sqlcommenter-knex');
const express = require('express');
const Knex = require('knex');
const fs = require('fs');

const app = express();
app.set('view engine', 'pug');
app.enable('trust proxy');

// Automatically parse request body as form data.
app.use(express.urlencoded({extended: false}));
// This middleware is available in Express v4.16.0 onwards
app.use(express.json());

// Set Content-Type for all responses for these routes.
app.use((req, res, next) => {
  res.set('Content-Type', 'text/html');
  next();
});

app.use(wrapMainKnexAsMiddleware(Knex, {
    traceparent: true,
    tracestate: true,
    route: true,
    db_driver: true
}));
...
  1. Cloud Shell पर वापस जाने और इसे चलाने के लिए, &#39;टर्मिनल खोलें&#39; बटन बटन पर क्लिक करें:
npm start
  1. टैब बनाम स्पेसेज़ ऐप्लिकेशन में, डेटाबेस में और डेटा जोड़ने के लिए कुछ और वोट डालने के लिए बटन पर क्लिक करें.

9. क्वेरी की परफ़ॉर्मेंस और एंड-टू-एंड ट्रेसिंग देखने के लिए इनसाइट का इस्तेमाल करना

क्वेरी इनसाइट डैशबोर्ड की मदद से, Cloud SQL पर की गई क्वेरी से जुड़ी समस्याओं को हल किया जा सकता है, ताकि परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाया जा सके. अहम जानकारी ऐक्सेस करने के लिए, अपने Cloud SQL इंस्टेंस के लिए, बाएं नेविगेशन में क्वेरी की अहम जानकारी चुनें.

डेटाबेस लोड - सभी क्वेरी ग्राफ़

टॉप लेवल क्वेरी इनसाइट डैशबोर्ड, डेटाबेस लोड - सभी क्वेरी ग्राफ़ दिखाता है.

सभी क्वेरी वाला ग्राफ़

इस ग्राफ़ में सीपीयू की क्षमता, सीपीयू और सीपीयू (CPU) की इंतज़ार करने की क्षमता, IO वेट, और लॉक वेट की जानकारी दी गई है. दस्तावेज़ में, इन मेट्रिक का मतलब और इनके बारे में ज़्यादा जानकारी पाई जा सकती है. साथ ही, यह भी पता लगाया जा सकता है कि ये मेट्रिक कहां सेव होती हैं और गड़बड़ी वाली क्वेरी के लिए यह ग्राफ़ कैसा दिखता है. इस सैंपल ऐप्लिकेशन के मामले में डेटाबेस क्वेरी का लोड कम है, इसलिए ग्राफ़ में कोई बड़ी बढ़ोतरी नहीं है.

सबसे ज़्यादा लोड किन क्वेरी की वजह से होता है?

ग्राफ़ के नीचे, आपको क्वेरी टेबल मिलेगी. इसमें आपकी चुनी गई समयसीमा के लिए नॉर्मलाइज़ की गई क्वेरी होंगी. टेबल में क्वेरी, एक्ज़ीक्यूशन के कुल समय के हिसाब से क्रम में लगाई जाती हैं.

सबसे ज़्यादा खोजी गई क्वेरी वाली टेबल

किसी क्वेरी पर क्लिक करके, उसके बारे में पूरी जानकारी देखी जा सकती है. जैसे, किसी क्वेरी का डेटाबेस लोड होना, क्वेरी का इंतज़ार का समय, क्वेरी प्लान के सैंपल, और टॉप उपयोगकर्ता. अगर किसी ऐप्लिकेशन को ORM का इस्तेमाल करके बनाया गया है, जैसा कि सैंपल ऐप्लिकेशन में भी किया जाता है, तो हो सकता है कि आपको यह पता न हो कि ऐप्लिकेशन का कौनसा हिस्सा किस क्वेरी के लिए ज़िम्मेदार है. टॉप टैग सेक्शन की मदद से यह जानकारी पाई जा सकती है.

ऐप्लिकेशन में क्वेरी लोड कहां से आ रहा है?

कारोबारी लॉजिक से टैग की गई क्वेरी की सूची देखने के लिए क्वेरी टेबल से TAGS टेबल पर टॉगल करें. इससे आपको ऐप्लिकेशन पर आधारित व्यू मिलेंगे.

सबसे लोकप्रिय टैग की टेबल

TAGS टेबल में, आप डेटाबेस लोड को अलग-अलग करके देख सकते हैं कि किस रूट के आधार पर लोड जनरेट हुआ. ऊपर दिए गए स्क्रीनशॉट में देखा जा सकता है कि '/getAllVotes' रूट पर एक्ज़ीक्यूशन का औसत समय ज़्यादा है. साथ ही, इसमें औसतन ज़्यादा लाइनें दिखती हैं. हालांकि, इस मामले में टेबल में लागू होने का समय कोई समस्या नहीं है. डेटा को ज़्यादा बारीकी से देखने के लिए, '/getAllVotes' की लाइन पर क्लिक कर लें.

क्वेरी धीमे क्यों चल रही हैं?

क्वेरी प्लान देखने के लिए, क्वेरी प्लान सैंपल ग्राफ़ में डॉट पर क्लिक करें.

क्वेरी प्लान का सैंपल

क्वेरी प्लान में यह दिखाया जाता है कि PostgreSQL, कवर के तहत किसी क्वेरी को कैसे एक्ज़ीक्यूट करता है. इससे यह पता लगाना आसान हो जाता है कि क्या कोई ऐसी कार्रवाई है जिसकी वजह से क्वेरी धीमी हो रही है.

किस ऐप्लिकेशन कोड की वजह से धीरे काम हो रहा है?

क्वेरी इनसाइट, शुरू से आखिर तक ट्रेस करने की प्रोसेस को कॉन्टेक्स्ट के हिसाब से विज़ुअलाइज़ भी करती है. इसकी मदद से, इस बात की जांच की जा सकती है कि ऐप्लिकेशन के कौनसे हिस्से, धीमी क्वेरी जनरेट कर रहे हैं.

कॉन्टेक्स्ट के हिसाब से ट्रेस देखने के लिए, खत्म होने पर खत्म करें टैब पर क्लिक करें.

शुरू से आखिर तक ट्रेस करने की सुविधा

10. स्टोरेज खाली करें और ज़्यादा जानें

आपने Node.js ऐप्लिकेशन और Cloud SQL PostgreSQL डेटाबेस की मदद से, क्वेरी की परफ़ॉर्मेंस पर नज़र रखने और उसकी जांच करने के लिए, क्वेरी इनसाइट का इस्तेमाल करने का तरीका सीखा है!

सफ़ाई करना

अगर आपको अपने Cloud SQL इंस्टेंस को चालू नहीं रखना है, तो इसे अभी मिटाएं.

gcloud sql instances delete my-instance

ज़्यादा जानें