Microsoft® SQL Server® Query Store, নামটিই ইঙ্গিত করে, একটি স্টোরের মতো যা এক্সিকিউট হওয়া কোয়েরির ডেটাবেস ইতিহাস, কোয়েরি রানটাইম এক্সিকিউশন পরিসংখ্যান এবং এক্সিকিউশন প্ল্যান ক্যাপচার করে। যেহেতু ডেটা ডিস্কে সংরক্ষিত থাকে, আপনি যেকোনো সময় কোয়েরি স্টোর ডেটা রিট্রিভ করতে পারেন সমস্যা সমাধানের জন্য, এবং SQL Server রিস্টার্ট ডেটাকে প্রভাবিত করে না। Query Store ব্যবহার করুন, যা SQL Server 2016-এ চালু হয়েছে এবং সব পরবর্তী সংস্করণে উপলব্ধ, কোয়েরি প্ল্যান পরিবর্তনের কারণে হয়ে যাওয়া পারফরম্যান্স সমস্যা সমাধান করতে।
ভূমিকা
আপনি বেসলাইন ডেটা অ্যানালিসিস পারফরম্যান্স ট্রাবলশুটিংয়ের জন্য উপকারী পেতে পারেন, কিন্তু Query Store চালু হওয়ার আগে পর্যন্ত সেই তথ্য SQL Server-এ নেটিভভাবে উপলব্ধ ছিল না। Query Store যদি একটি ডেটাবেসের জন্য সক্রিয় থাকে, তবে এটি এক্সিকিউট হওয়া কোয়েরি সম্পর্কে তথ্য রাখে এক্সিকিউশন প্ল্যান এবং রানটাইম পরিসংখ্যানসহ। এটি ডেটাবেস লেভেলে সক্রিয় হয় এবং সকল ইউজার ডেটাবেস এবং MSDB সিস্টেম ডেটাবেসের জন্য সক্রিয় করা যায়। Query Store-রিলেটেড তথ্য এবং মেটাডেটা ডেটাবেসের ভেতরেই ইন্টারনাল টেবিলে সংরক্ষিত থাকে। Query Store-এর আলাদা ব্যাকআপ ম্যানেজ করার প্রয়োজন নেই কারণ স্ট্যান্ডার্ড ডেটাবেস ব্যাকআপে সব প্রয়োজনীয় তথ্য থাকে। Query Store ডেটা দেখতে, আপনার View Database State পারমিশন থাকতে হবে, এবং প্ল্যান ফোর্স এবং আনফোর্স করার জন্য DB_Owner অধিকার থাকতে হবে। আপনি এই ডেটা ম্যানেজমেন্ট স্টুডিও এবং T-SQL-এর মাধ্যমে দেখতে পারেন।
Query Store সেট আপ করা
একটি ডেটাবেসের জন্য Query Store সক্রিয় করতে নিচের ধাপগুলো অনুসরণ করুন:
- Database -> Go to Properties-এ রাইট-ক্লিক করুন।
- Select a Page-এর অধীনে Select Query Store বেছে নিন।
- General সেকশনে, Operation Mode (Requested)-কে
OffথেকেRead-Write-এ পরিবর্তন করুন। - Operation Mode (Requested) ড্রপ-ডাউন বক্সের অন্যান্য ফিল্ডগুলো প্রি-পপুলেটেড ডিফল্ট মানগুলোর সাথে রেখে দিন।
- ডেটাবেস প্রপার্টি বক্সে Ok-এ ক্লিক করুন নির্বাচিত ডেটাবেসের জন্য Query Store সক্রিয় করতে।
আপনি T-SQL ব্যবহার করে Query Store সক্রিয় করতে পারেন নিচের কোড দিয়ে:
ALTER DATABASE [DB_Name] SET QUERY_STORE = ON;
Query Store-এর বিভিন্ন কনফিগারেশন অপশন
নিচের তালিকাটিতে Query Store-এর কিছু অপশনের বর্ণনা দেওয়া হলো:
Operation Mode (Requested)-এর তিনটি মান রয়েছে:
Off,Read Only, এবংRead Write। Query Store-এর মোডRead-এ সেট থাকলে, কোন নতুন এক্সিকিউশন প্ল্যান বা কোয়েরি রানটাইম পরিসংখ্যান সংগ্রহ করা হয় না। এই মোড Query Store-র সাথে সম্পর্কিত রিড-অনলি অপারেশনের জন্য। মোডকেRead Write-এ পরিবর্তন করলে Query Store নির্বাচিত ডেটাবেসে রান হওয়া কোয়েরি, সেই কোয়েরি ব্যবহৃত এক্সিকিউশন প্ল্যান এবং সেই কোয়েরি রানের রানটাইম পরিসংখ্যান সংগ্রহ করতে সক্ষম হয়।Data Flush Interval (Minutes) আপনাকে সেট করতে দেয় কত часто সংগ্রহ করা এক্সিকিউশন প্ল্যান এবং কোয়েরি রানটাইম পরিসংখ্যান মেমরি থেকে ডিস্কে ফ্লাশ হবে। ডিফল্টভাবে, এটি ১৫ মিনিটে সেট করা থাকে।
Statistics Collection Interval Query Store-র ভিতরে কোয়েরি রানটাইম পরিসংখ্যানের কোন অ্যাগ্রিগেশন ইন্টারভাল ব্যবহার করা উচিত তা সংজ্ঞায়িত করে। ডিফল্টভাবে, এটি ৬০ মিনিটে সেট করা থাকে।
Max Size (MB) Query Store-এর সর্বোচ্চ আকার কনফিগার করতে ব্যবহৃত হয়। ডিফল্টভাবে, এটি ১০০ MB-এ সেট করা থাকে। Query Store-এ ডেটা সেট করা ডেটাবেসে সংরক্ষিত থাকে যেখানে SQL Server Query Store সক্রিয়। এখানে কনফিগার করা আকারের উপর নির্ভর করে, Query Store সর্বোচ্চ আকারে পৌঁছালে, অপারেশন মোড স্বয়ংক্রিয়ভাবে
Read Onlyমোডে স্যুইচ হয়।Capture Mode আপনাকে বেছে নেওয়া সাহায্য করে কী ধরনের কোয়েরি Query Store-এ ক্যাপচার হবে। ডিফল্ট অপশন হল
All, যা প্রতিটি এক্সিকিউট হওয়া কোয়ারি সংরক্ষণ করে। এই অপশনauto-এ সেট থাকলে, Query Store প্রায়োরিটি অনুযায়ী কোন কোয়েরি ক্যাপচার করতে হবে তা নির্ধারণ করার চেষ্টা করে এবং কম এক্সিকিউট হওয়া এবং অন্যান্য অ্যাড-হক কোয়েরি এড়িয়ে চলে।Stale Query Threshold (Days) ডেটা Query Store-এ কতদিন থাকবে তা সংজ্ঞায়িত করতে ব্যবহৃত হয়। এই মোডের ডিফল্ট মান ৩০ দিন।
Query Store রিপোর্ট
Query Store নিচের রিপোর্টগুলো অন্তর্ভুক্ত করে:
- Regressed Queries: যেসব কোয়েরির এক্সিকিউশন মেট্রিক্স gầnামুখে রিগ্রেস বা খারাপ দিকে পরিবর্তন হয়েছে সেগুলো পয়েন্ট আউট করে।
- Overall Resource Consumptions: ডেটাবেসের মোট রিসোর্স কনসাম্পশন বিশ্লেষণ করে যেকোনো এক্সিকিউশন মেট্রিক্সের জন্য।
- Top Resource Consuming Queries: যেসব কোয়েরির ডেটাবেস রিসোর্স কনসাম্পশনে সবচেয়ে বড় প্রভাব পড়ে।
- Queries with Forced Plans: বিল্ট-ইন রিপোর্ট, যা ফোর্সড এক্সিকিউশন প্ল্যানসহ সকল কোয়েরি দেখায়।
- Queries with High Variation: এই রিপোর্টটি সবচেয়ে ঘন ঘন প্যারামিটারাইজেশন সমস্যাযুক্ত কোয়েরি দেখায়।
- Tracked Queries: রিয়েল-টাইমে সবচেয়ে গুরুত্বপূর্ণ কোয়েরি এক্সিকিউশন ট্র্যাক করে।
Query Store দিয়ে প্ল্যান ফোর্স করা
একটি প্ল্যান রিগ্রেশন কারণে, একটি কোয়েরি যা গতকাল ঠিকমতো কাজ করছিল, আজ খুব বেশি সময় নিতে পারে, খুব বেশি রিসোর্স খরচ করতে পারে বা টাইম আউট হতে পারে। ডিফল্টভাবে, SQL Server কোয়েরির জন্য শুধু লেটেস্ট এক্সিকিউশন প্ল্যান রাখে। স্কিমা, পরিসংখ্যান বা ইনডেক্সে যেকোনো পরিবর্তন কোয়েরি অপটিমাইজার দ্বারা ব্যবহৃত কোয়েরি এক্সিকিউশন প্ল্যান পরিবর্তন করতে পারে। প্ল্যানটি প্ল্যান ক্যাশে মেমরিতে প্রেশারের কারণে ড্রপও হতে পারে।
Query Store কোয়েরি প্ল্যান এবং সময়ের সাথে সাথে অ্যাগ্রিগেট করা পরিসংখ্যানিক তথ্য প্রতিটি মনিটরড ডেটাবেসের ভিতরে সংরক্ষণ করে। প্ল্যান ক্যাশের বিপরীতে, Query Store একাধিক প্ল্যান প্রতি কোয়েরি রিটেইন করতে পারে এবং কোয়েরি প্ল্যান পরিবর্তনের ইতিহাস সংশ্লিষ্ট স্ট্যাটস প্রতি প্ল্যানের সাথে রক্ষা করতে পারে। বিভিন্ন এক্সিকিউশন প্ল্যানের মধ্যে বেছে নিয়ে, আপনি যেকোনো এক্সিকিউশন প্ল্যান ফোর্স করতে পারেন। কোয়েরি অপটিমাইজার তারপর এই ফোর্সড এক্সিকিউশন প্ল্যানটিই ব্যবহার করবে আগামী কোয়েরি এক্সিকিউশনের জন্য।
Query Store -> Open Top Resource Consuming Queries রিপোর্ট রিসোর্স-ইনটেনসিভ কোয়েরি লিস্ট করে। একটি কোয়েরি নির্বাচন করুন পরীক্ষার জন্য:
মাউস Plan-এর ওপর হভার করুন সংশ্লিষ্ট পরিসংখ্যান দেখতে।
আসুন বিভিন্ন প্ল্যান তুলনা করি।
Plan 216 বিবরণ:
Plan 195 বিবরণ:
Plan 216-এর গড় ডিউরেশন কম, তাই এটি ভবিষ্যতের এক্সিকিউশনে এই প্ল্যান ফোর্স করতে ব্যবহার করা যেতে পারে। Force Plan-এ ক্লিক করুন একটি কনফার্মেশন স্ক্রিন দেখতে পাবেন মেসেজ "Do you want to force plan 216 for query 42?"
Yes-এ ক্লিক করুন। প্ল্যান ফোর্স হওয়ার পর, এটি একটি চেকмар্ক দিয়ে হাইলাইট হয়েছে নিচের স্ক্রিনশটে দেখানো মতে। ভবিষ্যতে, এই প্ল্যান কোয়েরি অপটিমাইজার দ্বারা এক্সিকিউশনের জন্য ব্যবহার হবে।
Query Store-এর সাথে সেরা অনুশীলন
সর্বশেষ SQL Server Management Studio ব্যবহার করুন লেটেস্ট ফিচার এবং এনহ্যান্সমেন্ট देखने।
Query Store ডেটা সংগ্রহ যাচাই ও মনিটর করুন।
Optimal Query ক্যাপচার মোড সেট করুন এবং প্রয়োজন অনুযায়ী Query Store কনফিগারেশন অপশন পুনরাবলোকন করুন সমায়োজন করতে।
নন-প্যারামিটারাইজড কোয়েরি ব্যবহার এড়িয়ান।
ফোর্সড প্ল্যানের স্ট্যাটাস নিয়মিত চেক করুন।
উপসংহার
Query Store SQL Server 2016-এ চালু হওয়া একটি উপকারী ফিচার। যেহেতু পারফরম্যান্স এনহ্যান্সমেন্ট টিউনিং প্রতিটি ডেটাবেস অ্যাডমিনিস্ট্রেটর (DBA)-র জন্য একটি কী দক্ষতা, আপনাকে Query Store কনফিগার ও ব্যবহার করা শিখতে হবে। আপনি Query Store ব্যবহার করে পারফরম্যান্স পরিবর্তন ট্র্যাক করতে পারেন এবং এক্সিকিউশন প্ল্যান তুলনা করে কোয়ারি পারফরম্যান্সে যেকোনো অবনতি সমাধান করতে পারেন। আপনি যেকোনো কোয়েরির জন্য কোয়েরি প্ল্যান ফোর্স করতে পারেন। এটি প্ল্যান ক্যাশে সেভ করা প্ল্যানকে ওভাররাইড করে এবং এইভাবে পারফরম্যান্স সুবিধা প্রদান করে। Query Store-এর SQL Server পারফরম্যান্সের ওপর কোন বড় প্রভাব নেই কারণ এটি কোয়েরি এক্সিকিউশন পরিসংখ্যান এবং প্ল্যান ক্যাপচার ও সংরক্ষণ করতে ব্যবহৃত হয় যাতে পরে দেখা যায়।
ফিডব্যাক ট্যাব ব্যবহার করে মন্তব্য করুন বা প্রশ্ন করুন।
বিশেষজ্ঞ প্রশাসন, ব্যবস্থাপনা এবং কনফিগারেশন দিয়ে আপনার পরিবেশ অপ্টিমাইজ করুন
Rackspace-এর অ্যাপ্লিকেশন সার্ভিস (RAS) বিশেষজ্ঞরা অ্যাপ্লিকেশনের ব্যাপক পোর্টফোলিওর জুড়ে নিচের প্রফেশনাল এবং ম্যানেজড সার্ভিসগুলো প্রদান করেন:
- ই-কমার্স এবং ডিজিটাল এক্সপেরিয়েন্স প্ল্যাটফর্ম
- এন্টারপ্রাইজ রিসোর্স প্ল্যানিং (ERP)
- বিজনেস ইন্টেলিজেন্স
- Salesforce কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট (CRM)
- ডেটাবেস
- ইমেইল হোস্টিং এবং প্রোডাক্টিভিটি
আমরা প্রদান করি:
- পক্ষপাতমূলক না এমন দক্ষতা: আমরা আপনার আধুনিকীকরণের যাত্রা সরল ও পথপ্রদর্শন করি, সেগুলোর ওপর ফোকাস করি যা অবিলম্বে মান দেয়।
- Fanatical Experience™: আমরা একটি প্রক্রিয়া-প্রথম, প্রযুক্তি-দ্বিতীয়® পদ্ধতির সাথে ডেডিকেটেড টেকনিক্যাল সাপোর্ট জোড়া দিয়ে সমগ্র সমাধান দিই।
- অনুপম পোর্টফোলিও: আমরা ব্যাপক ক্লাউড অভিজ্ঞতা প্রয়োগ করি যাতে আপনি সঠিক প্রযুক্তি সঠিক ক্লাউডে বেছে নেওয়া এবং ত্রিন করুন।
- চুস্ত ডেলিভারি: আমরা আপনার যাত্রার যেখানে আছেন সেখানে আপনাকে পাই এবং আমাদের সাফল্য আপনার সাথে মিলিয়ে দিই।
এখন চ্যাট করুন শুরু করতে।