আমি একটা বিষয় যা আমরা SQL সার্ভার 2000 সঙ্গে ভোগ করছি আমরা একটি পরিমিতরূপে লেনদেনের ওয়েবসাইট হয় বোঝার চেষ্টা করছি এবং আমরা নামক একটি সঞ্চিত proc আছে sp_GetCurrentTransactions
যা customerID, এবং দুটি তারিখের গ্রহণ করে।
এখন তারিখগুলি এবং গ্রাহকের উপর নির্ভর করে এই ক্যোয়ারী শূন্য থেকে সারিতে থাকা সারিগুলিতে যে কোনও কিছুই ফিরিয়ে দিতে পারে।
সমস্যা: আমরা যা অভিজ্ঞতা পেয়েছি তা হ'ল হঠাৎ আমরা Execution Timeout Expired
একটি নির্দিষ্ট ক্লায়েন্টের জন্য তারা বেশ কয়েকটি ত্রুটি (সাধারণত বা অনুরূপ) পেয়ে যাব যখন তারা সেই সঞ্চিত প্রোকটি কার্যকর করার চেষ্টা করে। সুতরাং আমরা কোয়েরিটি পরীক্ষা করি, এটি এসএসএমএসে চালিত করি এবং এটি দেখতে 30 এর বেশি লাগে। সুতরাং আমরা সঞ্চিত প্রকল্পটি পুনরায় কম্পাইল করে এবং -বাং- এটি এখন 300 মিমিগুলিতে চলে।
আমি এই বিষয়ে আমাদের ডিবিএর সাথে কথা বলেছি। তিনি আমাকে বলেছিলেন যে আমরা যখন সঞ্চিত প্রকল্পটি তৈরি করি তখন ডাটাবেসটি একটি কোয়েরি পরিকল্পনা তৈরি করে। তিনি বলেছিলেন যে সেগুলি পরামিতিগুলির সেটের জন্য এটি একটি ভাল পরিকল্পনা ছিল, তবে আপনি যদি এটিতে কোনও নির্দিষ্ট পরামিতি ফেলে দেন তবে পরিকল্পনাটি সেই ডেটাটির জন্য সেরা পরিকল্পনা হবে না এবং তাই আপনি এটি ধীরগতিতে দেখবেন।
আমার কাছে উপস্থাপিত বিকল্পগুলি হ'ল সমস্যাযুক্ত ক্যোয়ারীটি কোনও সঞ্চিত তদন্ত থেকে সরানো এবং ডায়নামিক এসকিউএল-এ ফিরে আসা যার প্রতিটি প্রয়োগে এটি কার্যকর করার পরিকল্পনা রয়েছে plan
এটি আমার কাছে ফিরে যাওয়ার মতো একটি অনুভূতি বলে মনে হয় এবং আমার মনে হয় এর আশেপাশে কোনও উপায় থাকতে হবে। এই সমস্যাটি মোকাবেলার জন্য কি অন্য কোনও উপায় আছে?
যে কোনও এবং সমস্ত প্রতিক্রিয়া প্রশংসা করা হয়।