এজার SQL DB-এর রিসোর্স কনসাম্পশনের”上রে সবচেয়ে বড় প্রভাব ফেলে অ্যাপ্লিকেশন লেয়ারের দ্বারা বারবার ডেটা পুল করা। কোয়েরি কত দ্রুত এক্সিকিউট হোক না কেন, একই প্রসিডিউর কল করা বা একই SQL স্টেটমেন্ট সো হাজার, হাজার, বা মিলিয়ন বার এক দিনে ডেটাবেস পারফরম্যান্সকে ধ্বংস করতে পারে। হাজার কাটে মৃত্যু সহজেই একটি সিস্টেমকে তার ঘুটনোতে আনার পারে। কখনো কখনো DBAs-র জন্য এই এক্টিভলি ট্রাবলশুট করা কঠিন হয় কারণ স্টেটমেন্ট এক্সিকিউশন খুব দ্রুত হয় যে sp_whoisactive-এর মতো টুলগুলোতে সেগুলো দেখা যায় না। এটি Query Performance Insights বা Query Store-এর মতো জিনিসগুলোর মধ্যে ডুবে না যতক্ষণ না আপনি আসল সমস্যাটি দেখতে পান।
এজার পোর্টাল


SSMS Query Store Top Consuming Queries with Executions Count Metric


প্রশ্ন হলো এই সমস্যাটি কীভাবে মোকাবিলা করবেন? কোড ফাইন-টিউনড আছে এবং অপ্টিমাল পারফরম্যান্সে চলে, শুধু অ্যাপ্লিকেশন কলের ভলিউমই সমস্যা সৃষ্টি করছে। একটি উত্তর হলো এজার ক্যাশ ফর রেডিস।
এজার ক্যাশ ফর রেডিস কী?
সহজ ভাষায়, এটি একটি ডেডিকেটেড মেমরি ক্যাশ ডেটা স্টোর যা অ্যাপ্লিকেশনগুলোর মাধ্যমে অ্যাক্সেসযোগ্য, আপনি আপনার ডেটা ইন-মেমরি ডেটা স্টোরে লোড করতে পারেন, সেখান থেকে সরাসরি পড়তে পারেন এবং আপনার ডেটাবেসে কলের সংখ্যা কমাতে পারেন। এই ক্যাশ লেয়ারে ডেটা রাখলে অ্যাপ্লিকেশনকে বারবার রিপিটেড ডেটা কল করতে হবে না। এটি ডেটাবেস পারফরম্যান্স ড্রামেটিক্যালি উন্নত করতে পারে, লেটেন্সি কমাতে পারে, এবং অন্যান্য ডেটা রিকোয়েস্টের জন্য রিসোর্স ফ্রি আপ করতে পারে পারফরম্যান্স লোড ক্যাশে শিফ্ট করে ডেটাবেস লেয়ার থেকে দূর। এটি আপনার অ্যাপ্লিকেশন কোডে পরিবর্তন আনার প্রয়োজন; তবে এটি ডেটাবেস পারফরম্যান্সকে সত্যিকারের 많이 বাড়াতে পারে। আপনি মাইক্রোসফট ডক্সে একটি জটিল অ্যাপের উদাহরণ দেখতে পারেন।
এটি শুধু পারফরম্যান্স গেইন নয়, আর্থিক লাভও হতে পারে। ফলাফলস্বরূপ আপনি আপনার এজার SQL ডেটাবেস স্কেল ডাউন করতে পারেন কারণ আপনার রিসোর্স কনসাম্পশন কমে যাবে।
শুরু করা যাক
একটি রিসোর্স তৈরি করুন, ডেটাবেসের অধীনে Azure Cache for Redis বেছে নিন

ক্যাশ টাইপ অপশনগুলোতে মনোযোগ দিন। প্রাইসিং টিয়ারস লিংকে ক্লিক করে নিশ্চিত করুন যে আপনার এনভায়রনমেন্টের জন্য সঠিকটি বেছে নিয়েছেন। এই কেসে আমি সবচেয়ে সস্তাটি বেছে নিচ্ছি, Basic C0, যা আমাকে শুধু ২৫০ MB ক্যাশ দেয় কিন্তু প্রতি মাসে প্রায় $16 খরচ, বড়গুলো কিছুটা ব্যয়বহুল হতে পারে।

নেটওয়ার্কিং-এ আপনাকে পাবলিক বা প্রাইভেট এন্ডপয়েন্ট বেছে নিতে হবে তারপর Next চাপুন

এখন আপনি কোন রেডিস ভার্সন চান সেটি বেছে নিন। নোট করুন ভার্সন ৬ প্রিভিউ-তে আছে। Next আপনাকে Tag অপশনগুলোর কাছে নিয়ে যাবে, যেটি আমি স্কিপ করছি কারণ আমার রিসোর্স ট্যাগ করার প্রয়োজন নেই। শেষে, Review and Create করুন রিসোর্সটি। এখন যেহেতু আমাদের একটি রেডিস ক্যাশ রিসোর্স তৈরি হয়েছে, এটিকে ব্যবহার করতে, এতে ডেটা স্টোর করতে এবং অ্যাপ্লিকেশনগুলোর মাধ্যমে অ্যাক্সেস করতে আরও অনেক ধাপ নেওয়া লাগবে। আমি সেই ধাপগুলো আপনার ওপর ছেড়ে দিচ্ছি, এই পোস্টে আমি শুধু দেখাতে চেয়েছিলাম এটিকে পোর্টালে কোথায় পাবেন এবং কীভাবে তৈরি করবেন।
সারসংক্ষেপ
যদি আপনি এমন একটি এনভায়রনমেন্টে কাজ করেন যেটিতে ঘন ঘন ডেটা কল হাজার হাজার বার প্রতি ঘণ্টায় হয়, তবে এটি আপনার জন্য একটি খুব ভালো রিসোর্স হতে পারে। আমি দৃঢ়ভাবে পরামর্শ দিচ্ছি আপনার পারফরম্যান্স টিউনিং টুলকিটে Azure Cache for Redis যোগ করতে। আপনি প্রক্রিয়াটি চালিয়ে যেতে সকল তথ্য এখানে পাবেন। নিশ্চিত করুন সিকিউরিটি বিষয়গুলোর ওপরও পড়েছেন। মাইক্রোসফট ডক্সে rất উপযোগী ডকুমেন্টেশন রয়েছে যা এখানেও পাওয়া যাবে।