কম্পিউটার

ডাটাবেস কর্মক্ষমতা টিউনিং

আপনার ডাটাবেসে পারফরম্যান্স টিউনিং করা হল সবচেয়ে সাধারণ এবং এখনও সবচেয়ে গুরুত্বপূর্ণ কার্যকলাপগুলির মধ্যে একটি যা প্রতিটি ডাটাবেস অ্যাডমিনিস্ট্রেটরকে (DBA) অবশ্যই চলমান এবং নিয়মিতভাবে সম্পাদন করতে হবে। বিশেষজ্ঞরা সুপারিশ করেন যে আপনি অপ্টিমাইজড পারফরম্যান্সের জন্য নিয়মিতভাবে সূক্ষ্ম-টিউনেড ডেটাবেস করুন। ফাইন-টিউনিং ব্যবহারকারীদের তাদের প্রতিবেদন এবং প্রশ্নগুলি দ্রুত চালাতে এবং দ্রুত ফলাফল পেতে সহায়তা করে। এই পোস্টটি Oracle® ডাটাবেসের সমস্যা সমাধান এবং টিউন করার কিছু কৌশল শেয়ার করে।

টিউনিং ধাপ

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

ওরাকল সমস্যা নির্ণয় এবং কর্মক্ষমতা সংক্রান্ত সমস্যা সমাধানে সাহায্য করার জন্য DBA-কে কয়েকটি টুল দিয়েছে। এই টুলগুলির মধ্যে রয়েছে স্বয়ংক্রিয় ডেটাবেস ডায়াগনস্টিক মনিটর (ADDM) এবং স্বয়ংক্রিয় ওয়ার্কলোড রিপোজিটরি (AWR) রিপোর্ট, যা আপনি সমস্যাযুক্ত সময়কালের জন্য তৈরি করতে পারেন এবং আপনার বিশ্লেষণে ব্যবহার করতে পারেন। তির্যক বা টিউনযোগ্য উপাদানগুলি সন্ধান করতে আপনার সরঞ্জামগুলি ব্যবহার করা উচিত।

AWR রিপোর্টে সেরা সময়ের ইভেন্টগুলি

AWR হল একটি টুল যার সাহায্যে আপনি একটি রিপোর্ট তৈরি করতে পারেন যা একটি নির্দিষ্ট উদাহরণের দ্বারা একটি পরিসংখ্যান ফর্মে মেমরি ব্যবহারের সংক্ষিপ্ত বিবরণ দেয়। একটি AWR রিপোর্ট তৈরি করতে, একটি sqlplus প্রম্পটে নিম্নলিখিত ফাইলটি চালান:

@$ORACLE_HOME/rdbms/admin/awrrpt.sql

এটি একটি পূর্ব-সংরক্ষিত টেমপ্লেট ব্যবহার করে HTML বিন্যাসে একটি AWR প্রতিবেদন তৈরি করে৷ আপনি AWR প্রতিবেদন তৈরি করার পরে, আপনি দ্রুত টপ টাইমড ইভেন্টস দেখতে পারেন৷ AWR রিপোর্টের বিভাগ, যা সমস্যাযুক্ত এলাকা চিহ্নিত করে, নিম্নলিখিত ছবিতে দেখানো হয়েছে:

ডাটাবেস কর্মক্ষমতা টিউনিং

ADDM টিউনিং সেশন

সাধারণত, যখন একটি সমস্যা রিপোর্ট করা হয়, তখন DBA শুধুমাত্র সেই এলাকার সমস্যা সমাধান করতে পারে বা সেই নির্দিষ্ট সমস্যার সমাধান করতে পারে। যাইহোক, যদি সমস্যাটি সঠিকভাবে সনাক্ত করা না হয় এবং সমাধান করা না হয় তবে এটি ভবিষ্যতে আরও বড় সমস্যা হতে পারে। DBAcan এখানে বড় ছবি মিস. DBA গুলিকে ডাটাবেস সমস্যাগুলি সম্পর্কে একটি বড় এবং একটি সম্পূর্ণ চিত্র পেতে সাহায্য করার জন্য, Oracle DBAs-এর জন্য আরেকটি টুল প্রদান করেছে, ADDM৷ একটি ADDM টিউনিং সেশন ম্যানুয়াল টিউনিং সেশনের মতো একটি পদ্ধতি অনুসরণ করে৷ নিম্নলিখিত চিত্রটি একটি তুলনা দেখায়:

ডাটাবেস কর্মক্ষমতা টিউনিং

চিত্রের উৎস:Oracle 11G পারফরম্যান্স টিউনিং প্রশিক্ষণ ম্যানুয়াল

এসকিউএল ব্যবহার করে বা ওরাকল এন্টারপ্রাইজ ম্যানেজার (OEM) এর মাধ্যমে ADDM রিপোর্ট পুনরুদ্ধার করুন। নিম্নলিখিত চিত্রটি নমুনা SQL দেখায়:

ডাটাবেস কর্মক্ষমতা টিউনিং

খারাপ SQL এবং এক্সিকিউশন প্ল্যান

AWR বা ADDM রিপোর্ট খারাপ SQL/SQLID এর বিভাগগুলি সনাক্ত করার পরে, আপনি তাদের সম্পর্কে আরও তথ্য সংগ্রহ করতে DBMS_XPLAN ব্যবহার করতে পারেন৷ DBMS_XPLAN প্যাকেজ নিম্নলিখিত সারণী ফাংশনগুলি সরবরাহ করে যা আপনি এক্সিকিউশন (এক্সিকিউশন) পরিকল্পনা পুনরুদ্ধার এবং প্রদর্শন করতে ব্যবহার করতে পারেন:

DISPLAY
DISPLAY_AWR
 select plan_table_output from table (DBMS_XPLAN.DISPLAY_AWR('fs22b3fgfh8xc'));
DISPLAY_CURSOR

নিচের ছবিটি EXPLAIN PLAN থেকে নমুনা আউটপুট দেখায় কমান্ড এবং সনাক্ত করে যে ক্যোয়ারীটি একটি সম্পূর্ণ টেবিল স্ক্যান ব্যবহার করছে বা কিছু সূচী ব্যবহার করে ডেটা সংকুচিত করছে:

ডাটাবেস কর্মক্ষমতা টিউনিং

ADDM রিপোর্টগুলি প্রতিফলিত করে যে আপনি কিছু নতুন সূচী তৈরি করে কোন কর্মক্ষমতা সুবিধা অর্জন করতে পারেন কিনা। আপনি প্রশ্নগুলিকে সূক্ষ্ম টিউন করতে এবং সম্ভবত একটি ভাল কার্যকরী পরিকল্পনা ব্যবহার করতে OEM থেকে SQL টিউনিং উপদেষ্টা চালাতে পারেন। বেশিরভাগ সময়, সমস্যাযুক্ত SQL এর জন্য একটি ভাল প্ল্যান ব্যবহার করে প্রধান কর্মক্ষমতা সমস্যা সমাধান করে।

SQL টিউনিং উপদেষ্টা

SQL টিউনিং উপদেষ্টা SQL বিবৃতি বিশ্লেষণ এবং সমাধান বিশ্লেষণ এবং পরামর্শ দিতে SQL অনুমোদন আইডি (SQLID) ব্যবহার করে কর্মক্ষমতা সুপারিশ পেতে সাহায্য করে। SQL টিউনিং উপদেষ্টা নিম্নলিখিত উত্সগুলি বিশ্লেষণ করে:

  • শীর্ষ কার্যকলাপ:বর্তমানে সক্রিয় শীর্ষ SQL বিবৃতি বিশ্লেষণ করে।
  • SQL টিউনিং সেট:আপনার প্রদান করা SQL স্টেটমেন্টের একটি সেট বিশ্লেষণ করে।
  • Historical SQL (AWR):AWR স্ন্যাপশট দ্বারা সংগৃহীত বিবৃতি থেকে SQL স্টেটমেন্ট বিশ্লেষণ করে।

নিম্নলিখিত স্ক্রিনশটগুলি কিছু উদাহরণ দেখায়:

ডাটাবেস কর্মক্ষমতা টিউনিং ডাটাবেস কর্মক্ষমতা টিউনিং ডাটাবেস কর্মক্ষমতা টিউনিং ডাটাবেস কর্মক্ষমতা টিউনিং

দীর্ঘ সময় ধরে চলা অনুরোধ

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

তথ্য:

ডাটাবেস কর্মক্ষমতা টিউনিং

ওরাকল ডাটাবেস মেমরি প্যারামিটার

AWR রিপোর্টগুলি পর্যালোচনা করার পরে, একটি DBA সহজেই ক্যাশে সনাক্ত করতে পারে যার জন্য সূক্ষ্ম টিউনিং প্রয়োজন কারণ ক্যাশে হিট অনুপাত অন্যান্য ক্যাশেগুলির তুলনায় সেই ক্যাশের তুলনায় কম৷ নিম্নলিখিত চিত্রটি কয়েকটি শীর্ষ ডাটাবেস প্যারামিটার দেখায় যা আপনাকে অবশ্যই ইন্সট্যান্স-ওয়াইড মেমরি টিউনিংয়ের জন্য বিবেচনা করতে হবে৷

ডাটাবেস কর্মক্ষমতা টিউনিং

ছবির উৎস: https://ora-performance-tuning.blogspot.com/2014/02/automatic-shared-memory-management.html

সাধারণভাবে পর্যবেক্ষণ করা অপেক্ষার ঘটনা

নিম্নলিখিত সারণীটি কিছু সাধারণ অপেক্ষার ঘটনা এবং তাদের সম্ভাব্য কারণগুলি দেখায়:

ডাটাবেস কর্মক্ষমতা টিউনিং (

সারণী উত্স:ওরাকল পারফরম্যান্স টিউনিং 11G OCP প্রশিক্ষণ ম্যানুয়াল, অধ্যায় 20, পৃষ্ঠা 24

শীর্ষ 10 টি টিউনিং সমস্যা

গ্রাহকরা সাধারণত নিম্নলিখিত শীর্ষ 10 টি টিউনিং সমস্যার মুখোমুখি হন:

  • খারাপ সংযোগ ব্যবস্থাপনা: ডেভেলপাররা অ্যাপ্লিকেশনে ডাটাবেসের সাথে সংযোগ করার জন্য কোড লিখে বা ডাটাবেস থেকে ডেটা আনার জন্য কোয়েরি চালায়। ডেটা আনার পরে এবং আর কিছুর প্রয়োজন নেই, কোডটি ডাটাবেসের সাথে সংযোগ বন্ধ করে দেয়। যাইহোক, এটি প্রায়শই ঘটে না, যার ফলে ডাটাবেসে নিষ্ক্রিয় সেশনের সংখ্যা বৃদ্ধি পায়। এই অধিবেশনগুলি মূল্যবান সংস্থানগুলি ব্যবহার করে যা অন্যান্য সক্রিয় সংযোগের জন্য ব্যবহার করা যেতে পারে৷

  • কারসার এবং শেয়ার্ড পুলের খারাপ ব্যবহার: একটি কার্সার একটি বিকাশকারীর অস্ত্রাগারের একটি সরঞ্জাম যা বেশিরভাগই অব্যবহৃত থাকে। কার্সার ছাড়া, ওরাকলকে প্রতিবার চালানোর সময় কোডটিকে হার্ডপার্স করতে হবে। এটি বারবার চালানো SQLqueries এর কর্মক্ষমতাকে ব্যাপকভাবে প্রভাবিত করে। একটি DBA ইন্সট্যান্স এফিসিয়েন্সি শতাংশ - এক্সিকিউট টু পার্স % দেখে এই সমস্যাটি সনাক্ত করতে পারে। AWR রিপোর্ট বিভাগ।

  • খারাপ SQL: যেভাবে একটি এসকিউএল ক্যোয়ারী লেখা হয় (ডাটা আনতে যোগদানের শর্ত সহ) তা কার্যকর হওয়ার পরে সেই SQL এর কার্যকারিতাকে উল্লেখযোগ্যভাবে প্রভাবিত করে। আপনার বড় টেবিলের জন্য সম্পূর্ণ টেবিল স্ক্যান এড়ানো উচিত। এসকিউএল প্রস্তুত হওয়ার পর, ডেভেলপার এবং ডিবিএ-এর উচিত ডেটাবেসে চালানোর খরচ বোঝার জন্য সেই SQL-এর উপর একটি ব্যাখ্যামূলক পরিকল্পনা চালানো। কার্সার, বাইন্ডভেরিয়েবল এবং ইনডেক্স ব্যবহার করে, আপনি দক্ষতা বাড়াতে পারেন।

  • ননস্ট্যান্ডার্ড ইনিশিয়ালাইজেশন প্যারামিটারের ব্যবহার: DBA-র সবসময় শুধুমাত্র আদর্শ বা প্রস্তাবিত প্রারম্ভিক প্যারামিটার ব্যবহার করা উচিত। অ-মানক ইনিশিয়ালাইজেশন প্যারামিটারগুলি শুধুমাত্র তখনই ব্যবহার করুন যখন সেগুলি একটি Oracle পরিষেবা অনুরোধ (SR) দ্বারা প্রস্তাবিত হয়৷

  • ডাটাবেস I/O ভুল হচ্ছে: যখন একটি DBA বাছাই করা ডাটাবেস হার্ডওয়্যারকে একাধিক ডিস্কের উপর ডাটাবেস বিতরণ করার চেষ্টা করা উচিত এবং নেটওয়ার্ক দলটিকে ডাটাবেস সার্ভার থেকে শেষ ব্যবহারকারীদের কাছে কী গতিতে নিয়ে যাওয়া হবে তা নিয়ে আলোচনায় যুক্ত করা উচিত। কোনো বাধা বা কর্মক্ষমতা সংক্রান্ত সমস্যা এড়াতে একটি DBA নেটওয়ার্ক সুইচ এবং রাউটারের গতি বিবেচনা করা উচিত।

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

  • বাফার ক্যাশে ডেটা ব্লকের ক্রমিকীকরণ: বিনামূল্যে তালিকা গোষ্ঠী বা পূর্বাবস্থায় ফেরানো বিভাগগুলির অভাবের কারণে এটি ঘটে। সক্রিয় ব্যবহারকারীদের একটি বড় বেস কিন্তু কম পূর্বাবস্থায় থাকা সেগমেন্টের সাথে সন্নিবেশ-ভারী ডাটাবেসের জন্য এই পরিস্থিতির উদ্ভব হয়, যা শেষ পর্যন্ত কর্মক্ষমতা সংক্রান্ত সমস্যার দিকে নিয়ে যায়।

  • সম্পূর্ণ টেবিল স্ক্যান: একটি ব্যাখ্যা পরিকল্পনা চালানোর মাধ্যমে প্রশ্নের মধ্যে সম্পূর্ণ টেবিল স্ক্যানের জন্য পরীক্ষা করুন। সাধারণত, একটি ক্যোয়ারী যা সম্পূর্ণ টেবিল স্ক্যান করে তা খারাপ SQL ডিজাইন প্রতিফলিত করে, যা সূচী ব্যবহার করে এবং প্রয়োজনীয় ডেটা সংকুচিত করে সংশোধন করা যেতে পারে। কিছু ক্ষেত্রে, সম্পূর্ণ টেবিল স্ক্যান উপকারী হতে পারে, বিশেষ করে ছোট টেবিলের ক্ষেত্রে।

  • পুনরাবৃত্ত SQL: রিকার্সিভ এসকিউএল ডেভেলপারদের জন্য একটি বর হতে পারে যদি সঠিকভাবে ব্যবহার করা হয় তবে এটি একটি দ্বি-ধারী তলোয়ার হতে পারে। সঠিকভাবে সম্পন্ন হয়েছে, এটি দক্ষতার সাথে আউটপুট প্রদান করে। অন্যথায়, এটি ডাটাবেসের কর্মক্ষমতাকে ব্যাপকভাবে প্রভাবিত করে।

  • ইন-ডিস্ক বাছাই: ইন-ডিস্ক বাছাই ডাটাবেসের জন্য একটি অত্যন্ত ব্যয়বহুল কাজ। এটি দুর্বল SQL ডিজাইন এবং খারাপ অপ্টিমাইজেশন নির্দেশ করে। আপনি ইন্সট্যান্স অ্যাক্টিভিটি পরিসংখ্যান – বাছাই (ডিস্ক)-এ সমস্যাটি সনাক্ত করতে পারেন AWR রিপোর্ট বিভাগ।

উপসংহার

যদিও ডিবিএ-কে পারফরম্যান্স টিউনিংয়ের জন্য বিভিন্ন ক্ষেত্র বিবেচনা করতে হবে, ডেটাবেসওয়ার্ল্ডে, কর্মক্ষমতা টিউনিং ডাটাবেস এবং অ্যাপ্লিকেশন ডিজাইন স্টেজ থেকে শুরু হয়৷ ডেটাবেস এবং অ্যাপ্লিকেশনগুলি যেগুলি পারফরম্যান্স টিউনিং দৃষ্টিকোণকে মাথায় রেখে ডিজাইন করা হয়েছে সেগুলি পারফরম্যান্স টিউনিং বিবেচনা ছাড়াই ডিজাইন করা অ্যাপ্লিকেশনগুলির তুলনায় অনেক বেশি মাপযোগ্য৷

এই ব্লগে কভার করা পারফরম্যান্স টিউনিং পয়েন্টগুলি হল আইসবার্গের একটি টিপ৷ আমি সুপারিশ করছি যে সহকর্মী DBA দের সামগ্রিকভাবে ডেটাবেসের পারফরম্যান্সের যত্ন নেওয়ার জন্য এই বিষয়ে আরও পড়তে থাকুন৷

কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাবটি ব্যবহার করুন৷

আমাদের ডাটাবেস পরিষেবাগুলি সম্পর্কে আরও জানুন৷

Rackspace এর ওরাকল পণ্যের ব্যাপক জ্ঞান রয়েছে। আমরা কীভাবে আপনার ওরাকল বিনিয়োগকে সর্বাধিক করতে পারি সে সম্পর্কে আরও জানুন।


  1. Oracle ডেটাবেস 18c-এ নতুন বৈশিষ্ট্য

  2. এসকিউএল কোয়ারেন্টাইন

  3. Redis কর্মক্ষমতা উপর চিন্তা

  4. এমএস অ্যাক্সেস থেকে SQL সার্ভার ডেটাবেসে ডেটা স্থানান্তর করুন