ক্লাউড এসকিউএল-এর জন্য কোয়েরি ইনসাইটের ভূমিকা

1. আপনি শুরু করার আগে

ক্লাউড এসকিউএল এর জন্য কোয়েরি ইনসাইট আপনাকে ক্লাউড এসকিউএল ডাটাবেসের জন্য কোয়েরি পারফরম্যান্স সমস্যা সনাক্ত করতে, নির্ণয় করতে এবং প্রতিরোধ করতে সহায়তা করে। এটি স্ব-পরিষেবা, স্বজ্ঞাত মনিটরিং এবং ডায়াগনস্টিক তথ্য প্রদান করে যা আপনাকে কর্মক্ষমতা সমস্যার মূল কারণ সনাক্ত করতে সহায়তা করার জন্য সনাক্তকরণের বাইরে চলে যায়।

এই কোডল্যাবে, আপনি শিখবেন কিভাবে PostgreSQL ইন্সট্যান্সের জন্য একটি ক্লাউড এসকিউএল সেট আপ করতে হয়, ক্লাউড এসকিউএল ইন্সট্যান্সকে ব্যাকএন্ড স্টোরেজ হিসেবে ব্যবহার করতে একটি Node.js অ্যাপ স্থাপন করতে হয় এবং তারপর ক্যোয়ারী দেখতে ও নিরীক্ষণ করতে কোয়েরি ইনসাইট ব্যবহার করতে হয়।

পূর্বশর্ত

  • Node.js প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে প্রাথমিক পরিচিতি

আপনি কি করবেন

  • একটি Node.js অ্যাপে Cloud SQL ব্যবহার করুন।
  • একটি Node.js অ্যাপে SQL মন্তব্যকারী সক্ষম করুন।
  • ক্যোয়ারী কর্মক্ষমতা নিরীক্ষণ এবং তদন্ত করতে ক্লাউড SQL এর জন্য কোয়েরি অন্তর্দৃষ্টি ব্যবহার করুন।

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড অ্যাকাউন্ট যেখানে আপনার কাছে API সক্ষম করার এবং পরিষেবা তৈরি করার অনুমতি রয়েছে৷

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)

আপনি যে প্রকল্পটি ব্যবহার করছেন তার প্রকল্প আইডিটি মনে রাখবেন। এটিকে পরবর্তীতে এই কোডল্যাবে PROJECT-ID হিসাবে উল্লেখ করা হবে।

  1. এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷

এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিন আপ এবং আরও জানুন" বিভাগে যেকোন নির্দেশাবলী অনুসরণ করতে ভুলবেন না, যা আপনাকে পরামর্শ দেয় যে কীভাবে সংস্থানগুলি বন্ধ করতে হয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন।

ক্লাউড শেল সক্রিয় করুন

আপনি যদি আগে কখনও ক্লাউড শেল শুরু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:

ক্লাউড শেল ডায়ালগ উইন্ডো

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

ক্লাউড শেল টার্মিনাল

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে।

  1. আপনি সঠিক প্রকল্প ব্যবহার করছেন তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে।

আপনি সঠিক প্রকল্প ব্যবহার করছেন তা নিশ্চিত করতে নিম্নলিখিত কমান্ডটি চালান।

gcloud config list project

আপনি ক্লাউড শেল খোলার সময় যেটি বেছে নিয়েছিলেন তার থেকে যদি আপনি একটি ভিন্ন প্রজেক্ট ব্যবহার করতে চান, তাহলে আপনি রান করে একটি নতুন সেট করতে পারেন:

gcloud config set project <PROJECT-ID>;

3. ক্যোয়ারী অন্তর্দৃষ্টি সক্ষম করে PostgreSQL উদাহরণের জন্য একটি ক্লাউড SQL সেট আপ করুন

  1. ক্লাউড শেল চালু হওয়ার পরে, আপনি ক্যোয়ারী ইনসাইটস সক্ষম করে, my-instance নামে একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করতে কমান্ড লাইন ব্যবহার করতে পারেন:
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> পতাকা আপনাকে root postgres ব্যবহারকারীর জন্য পাসওয়ার্ড নির্দিষ্ট করতে দেয়। আপনার পছন্দের পাসওয়ার্ড দিয়ে <PASSWORD> প্রতিস্থাপন করতে ভুলবেন না।
  • --insights-config-query-insights-enabled পতাকা আপনার উদাহরণে কোয়েরি অন্তর্দৃষ্টি সক্ষম করে।
  • --insights-config-record-application-tags পতাকা অ্যাপ্লিকেশন ট্যাগ রেকর্ড করার অনুমতি দেয়। আপনি পরবর্তী বিভাগে অ্যাপ্লিকেশন ট্যাগ সম্পর্কে আরও শিখবেন।
  • --insights-config-record-client-address পতাকা ক্লায়েন্ট আইপি ঠিকানাগুলি ক্যোয়ারী ইনসাইট দ্বারা রেকর্ড করার অনুমতি দেয়।

আপনাকে আপনার প্রকল্পের জন্য API sqladmin.googleapis.com সক্ষম করতে বলা হতে পারে৷ আপনাকে অনুরোধ করা হলে, API সক্ষম করতে y নির্বাচন করুন।

উদাহরণ তৈরি করতে কয়েক মিনিট সময় লাগবে। একবার এই অপারেশনটি সম্পূর্ণ হলে, আপনার উদাহরণ ব্যবহার করার জন্য প্রস্তুত হবে।

  1. এখন একটি ডাটাবেস তৈরি করুন যা আপনি নমুনা অ্যাপের জন্য ব্যবহার করবেন:
gcloud sql databases create votesdb --instance my-instance

এছাড়াও আপনি ক্লাউড কনসোলের মাধ্যমে উদাহরণটি অ্যাক্সেস এবং কনফিগার করতে পারেন।

  1. নিম্নলিখিত কমান্ডটি চালিয়ে PROJECT-ID:ZONE-ID:INSTANCE-ID ফরম্যাটে উদাহরণ সংযোগের নাম পান। আপনি পরে আপনার Node.js অ্যাপ কনফিগার করার জন্য এটি ব্যবহার করবেন।
gcloud sql instances describe my-instance | grep connectionName

4. অ্যাপের সাথে ব্যবহার করার জন্য একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন৷

আপনার GCP প্রকল্পের মধ্যে বিভিন্ন পরিষেবা ব্যবহার করার অনুমতি দেওয়ার জন্য পরিষেবা অ্যাকাউন্টগুলি ব্যবহার করা হয়। এই কোডল্যাবের জন্য, আপনার ক্লাউড SQL দৃষ্টান্তের সাথে সংযোগ করার জন্য ক্লাউড এসকিউএল প্রক্সি অনুমতি দেওয়ার জন্য আপনার একটি প্রয়োজন।

কনসোলে একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন

  1. IAM পরিষেবা অ্যাকাউন্ট পৃষ্ঠাতে যান এবং ক্লিক করুন -PCvKR3aQ2zKaUcml8w9lW4JNlmYtN5-r2--mC6kMUp6HOXW8wT1wUvLoYEPU-aA-oGskT3XkAqfNwRAKkZkllwTe6ugdrUVFwaeKT0M9YP9Y1RW8RWM9Y1RW8RW পৃষ্ঠার শীর্ষে বোতাম।
  2. আপনার পরিষেবা অ্যাকাউন্টকে একটি অনন্য নাম এবং আইডি দিন এবং তৈরি করুন ক্লিক করুন।
  3. পরবর্তী পৃষ্ঠায়, একটি ভূমিকা নির্বাচন করার জন্য ড্রপ-ডাউনে ক্লিক করুন। "ক্লাউড SQL" এর জন্য ফিল্টার করুন এবং ক্লাউড SQL ক্লায়েন্ট ভূমিকা নির্বাচন করুন৷ CONTINUE-এ ক্লিক করুন এবং তারপর DONE-এ ক্লিক করুন।
  4. পরিষেবা অ্যাকাউন্ট তৈরি হওয়ার পরে, আপনার নতুন পরিষেবা অ্যাকাউন্টের জন্য অ্যাকশনের অধীনে তিনটি বিন্দুতে ক্লিক করুন এবং কী পরিচালনা করুন নির্বাচন করুন। পরবর্তী পৃষ্ঠায়, ADD KEY নির্বাচন করুন এবং তারপরে নতুন কী তৈরি করুন । JSON নির্বাচন করা হবে; সেই ডিফল্ট রাখুন, এবং CREATE এ ক্লিক করুন। এটি একটি .json প্রাইভেট কী ফাইল ডাউনলোড করবে। বন্ধ ক্লিক করুন.
  5. ক্লাউড শেল-এ, আরও মেনুর জন্য তিনটি বিন্দুতে ক্লিক করুন এবং আপলোড ফাইল নির্বাচন করুন। আপনার স্থানীয় মেশিনে ডাউনলোড করা .json ফাইলটি ব্রাউজ করুন এবং এটি নির্বাচন করুন। এটি ক্লাউড শেল-এ আপনার হোম ডিরেক্টরিতে .json ফাইল আপলোড করবে।

5. ক্লাউড এসকিউএল প্রক্সি ইনস্টল এবং চালু করুন

আপনি অ্যাপ্লিকেশন এবং ডাটাবেস উদাহরণের মধ্যে যোগাযোগের জন্য ক্লাউড SQL প্রক্সি ব্যবহার করবেন।

  1. ক্লাউড এসকিউএল প্রক্সি ডাউনলোড করুন। ক্লাউড শেলে, আপনি চালাতে পারেন:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy
  1. ক্লাউড SQL ইনস্ট্যান্স ওভারভিউ পৃষ্ঠা থেকে আপনার কপি করা ইন্সট্যান্স কানেকশন নামের সাথে <INSTANCE_CONNECTION_NAME> প্রতিস্থাপন করার পরে নিম্নরূপ প্রক্সি চালান।
./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. ওয়েব পূর্বরূপ ক্লিক করুন ওয়েব প্রিভিউ আইকন ক্লাউড শেল-এ, তারপর পোর্ট 8080-এ পূর্বরূপ নির্বাচন করুন।

পোর্ট 8080 মেনু আইটেমের পূর্বরূপ

আপনার ব্রাউজারে এখানে দেখানো ট্যাব বনাম স্পেস ভোটিং অ্যাপ দেখতে হবে:

ট্যাব বনাম স্পেস ভোটিং অ্যাপের স্ক্রিনশট

  1. কিছু ভোট করতে এবং ডাটাবেসে কিছু ডেটা সংরক্ষণ করতে বোতামে ক্লিক করুন।

7. সমস্ত ভোট দেখতে একটি পৃষ্ঠা যুক্ত করুন৷

যেহেতু এই নমুনা অ্যাপ্লিকেশনটি খুব সহজ, আপনি একটি অতিরিক্ত পৃষ্ঠা যুক্ত করবেন যা সমস্ত ভোট প্রদর্শন করে। এটি করার প্রাথমিক কারণ হল আপনি পরে ক্যোয়ারী অন্তর্দৃষ্টি ব্যবহার করার সময় দেখার জন্য আপনার কাছে আরও ডেটা থাকে৷

  1. নমুনা অ্যাপ বন্ধ করতে আপনার ক্লাউড শেল-এ Ctrl+c লিখুন।
  2. ক্লাউড শেল এ, ক্লিক করুন এডিটর বোতাম খুলুন ক্লাউড শেল এডিটর চালু করতে বোতাম।
  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. ক্লিক করুন টার্মিনাল বোতাম খুলুন ক্লাউড শেলে ফিরে যাওয়ার জন্য বোতাম এবং চালান:
npm start
  1. এটি কাজ করছে তা নিশ্চিত করতে ওয়েব প্রিভিউ থেকে অ্যাপটি খুলুন। আপনার যোগ করা নতুন পৃষ্ঠা দেখতে ব্রাউজারে URL-এ /getAllVotes যোগ করুন।

8. অ্যাপে এসকিউএল কমেন্টার সক্ষম করুন

এখন আপনি এসকিউএল কমেন্টার ইনস্টল এবং সক্ষম করবেন, একটি ওপেন-সোর্স লাইব্রেরি যা ORM-গুলিকে কার্যকর করার আগে মন্তব্য সহ SQL স্টেটমেন্ট বাড়ানোর জন্য সক্ষম করে। SQLcommenter নমুনা অ্যাপ ব্যবহার করে এমন একটি সহ বেশ কয়েকটি ORM এবং ফ্রেমওয়ার্ক সমর্থন করে: Knex.js। ক্যোয়ারী ইনসাইটস এই মন্তব্যে তথ্য ব্যবহার করে ডাটাবেসের কর্মক্ষমতাতে একটি অ্যাপ্লিকেশন-কেন্দ্রিক দৃষ্টিভঙ্গি দিতে এবং কোন অ্যাপ্লিকেশন কোড সমস্যা সৃষ্টি করছে তা শনাক্ত করে। কর্মক্ষমতা ওভারহেড ছোট হতে প্রত্যাশিত. কোয়েরি ইনসাইট ডকুমেন্টেশন দেখুন।

  1. নমুনা অ্যাপ বন্ধ করতে আপনার ক্লাউড শেল-এ Ctrl+c লিখুন।
  2. SQLকমেন্টারের প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
  npm install @google-cloud/sqlcommenter-knex @opencensus/nodejs @opencensus/propagation-tracecontext @opentelemetry/api @opentelemetry/core --save
  1. ক্লাউড শেল এ, ক্লিক করুন এডিটর বোতাম খুলুন ক্লাউড শেল এডিটর চালু করতে বোতাম।
  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. ক্লিক করুন টার্মিনাল বোতাম খুলুন ক্লাউড শেলে ফিরে যাওয়ার জন্য বোতাম এবং চালান:
npm start
  1. ট্যাব বনাম স্পেস অ্যাপ্লিকেশনে, ডাটাবেসে আরও ডেটা যোগ করতে আরও কিছু ভোট দিতে বোতামে ক্লিক করুন।

9. ক্যোয়ারী কর্মক্ষমতা এবং এন্ড-টু-এন্ড ট্রেসিং দেখতে অন্তর্দৃষ্টি ব্যবহার করুন

কোয়েরি ইনসাইটস ড্যাশবোর্ড আপনাকে পারফরম্যান্সের সমস্যাগুলি দেখতে ক্লাউড এসকিউএল কোয়েরির সমস্যা সমাধানে সহায়তা করে। অন্তর্দৃষ্টি অ্যাক্সেস করতে, আপনার ক্লাউড SQL দৃষ্টান্তের জন্য বাম নেভিগেশনে কোয়েরি অন্তর্দৃষ্টি নির্বাচন করুন।

ডাটাবেস লোড - সমস্ত প্রশ্নের গ্রাফ

শীর্ষ-স্তরের ক্যোয়ারী ইনসাইটস ড্যাশবোর্ড ডেটাবেস লোড দেখায় - সমস্ত প্রশ্নের গ্রাফ।

সমস্ত প্রশ্নের গ্রাফ

গ্রাফটিতে CPU ক্ষমতা, CPU এবং CPU অপেক্ষা, IO অপেক্ষা এবং লক অপেক্ষার তথ্য রয়েছে। আপনি এই মেট্রিক্সের অর্থ কী, মেট্রিক্স কোথায় সংরক্ষণ করা হয় সে সম্পর্কে আরও জানতে পারেন এবং ডকুমেন্টেশনে সমস্যাযুক্ত প্রশ্নের জন্য এই গ্রাফটি কেমন দেখায় তার কিছু উদাহরণ দেখতে পারেন। এই নমুনা অ্যাপ্লিকেশনের ক্ষেত্রে ডাটাবেস ক্যোয়ারী লোড কম, তাই গ্রাফে কোন বড় স্পাইক নেই।

কোন প্রশ্ন সবচেয়ে লোড জন্য দায়ী?

গ্রাফের নীচে, আপনি QUERIES সারণী পাবেন যাতে আপনার নির্বাচিত সময় সীমার জন্য স্বাভাবিক প্রশ্নগুলি রয়েছে৷ সারণীতে থাকা প্রশ্নগুলি মোট কার্যকর করার সময় অনুসারে সাজানো হয়েছে।

শীর্ষ ক্যোয়ারী টেবিল

আপনি ক্যোয়ারী সম্পর্কে বিস্তারিত তথ্য দেখতে একটি পৃথক ক্যোয়ারীতে ক্লিক করতে পারেন, যেমন এই নির্দিষ্ট ক্যোয়ারীটির জন্য ডাটাবেস লোড, ক্যোয়ারী লেটেন্সি, ক্যোয়ারী প্ল্যান নমুনা এবং শীর্ষ ব্যবহারকারীরা। যদি একটি অ্যাপ্লিকেশন একটি ORM ব্যবহার করে তৈরি করা হয়, যেমনটি নমুনা অ্যাপ্লিকেশনের ক্ষেত্রে, আপনি হয়তো জানেন না যে অ্যাপ্লিকেশনটির কোন অংশটি কোন প্রশ্নের জন্য দায়ী৷ শীর্ষ ট্যাগ বিভাগ আপনাকে এটি বের করতে সাহায্য করতে পারে।

কোয়েরি লোড অ্যাপ্লিকেশনে উদ্ভূত হয় কোথায়?

ব্যবসায়িক যুক্তি দ্বারা ট্যাগ করা প্রশ্নগুলির একটি তালিকা দেখতে QUERIES টেবিল থেকে TAGS টেবিলে টগল করুন, আপনাকে আরও অ্যাপ্লিকেশন কেন্দ্রিক ভিউ দেয়৷

শীর্ষ ট্যাগ টেবিল

TAGS টেবিলে, আপনি ডাটাবেস লোডটি দেখতে পাবেন কোন রুট দ্বারা লোড তৈরি হয়েছে। উপরের স্ক্রিনশটে, আপনি দেখতে পাচ্ছেন যে '/getAllVotes' রুটে উচ্চতর গড় কার্যকর করার সময় রয়েছে এবং গড়ে আরও বেশি সারি রয়েছে। যদিও আমরা টেবিলে যে এক্সিকিউশন টাইম দেখতে পাচ্ছি এই ক্ষেত্রে সমস্যাযুক্ত নয়, চলুন '/getAllVotes' এর জন্য সারিতে ক্লিক করা যাক যেভাবেই হোক ডেটা আরও বিশদে দেখতে।

প্রশ্নগুলো ধীরে ধীরে চলছে কেন?

একটি ক্যোয়ারী প্ল্যান দেখতে ক্যোয়ারী প্ল্যানের নমুনা গ্রাফের বিন্দুতে ক্লিক করুন।

নমুনা প্রশ্ন পরিকল্পনা

ক্যোয়ারী প্ল্যানগুলি দেখায় কিভাবে PostgreSQL কভারের নিচে একটি ক্যোয়ারী চালায়, এটি নির্ণয় করা সহজ করে যে কোন ক্রিয়াকলাপের ফলে ধীরগতি হয়।

কোন অ্যাপ্লিকেশন কোড মন্থরতা অবদান?

ক্যোয়ারী ইনসাইটস এন্ড-টু-এন্ড ট্রেসিং-এর ইন-প্রেক্ষাপট ভিজ্যুয়ালাইজেশনও প্রদান করে, যা একটি অ্যাপ্লিকেশনের কোন অংশে ধীরগতির প্রশ্ন তৈরি করছে সে বিষয়ে আরও তদন্ত করতে সহায়ক হতে পারে।

ইন-কনটেক্সট ট্রেস দেখতে END TO END ট্যাবে ক্লিক করুন।

শেষ থেকে শেষ ট্রেস

10. পরিষ্কার করুন এবং আরও জানুন

আপনি একটি Node.js অ্যাপ এবং একটি ক্লাউড SQL PostgreSQL ডাটাবেসের মাধ্যমে ক্যোয়ারী কার্যক্ষমতা নিরীক্ষণ ও তদন্ত করতে কোয়েরি ইনসাইট ব্যবহার করতে শিখেছেন!

ক্লিনিং আপ

আপনি যদি আপনার ক্লাউড এসকিউএল ইন্সট্যান্স চালু রাখতে না চান, তাহলে আপনি এখন এটি মুছে ফেলতে পারেন।

gcloud sql instances delete my-instance

আরও জানুন