বিষয়টিতে আমার অনুসন্ধান আমাকে এখানে এনেছে, তাই আমি ঠিক এই বিষয়টিতে আমার সাম্প্রতিক অভিজ্ঞতাটি ভাগ করে নিতে চাই।
আমি এসকিউএল 2014 চালিয়ে যাচ্ছি, সুতরাং আমি অনুভব করেছি যে আমি 4199 সম্পর্কে কিছুটা যত্ন নেওয়া থেকে নিরাপদ থাকব ... তবে এটি সত্য ছিল না ...
আপনার যদি 4199 দরকার হয় তবে কীভাবে ডায়াগনস করবেন
যদি আপনার কোয়েরিটি খারাপভাবে চলমান বলে মনে হয় , বিশেষত যখন আপনার মনে হয় এটি করা উচিত নয়, তবে এটির শেষে আরও যুক্ত করার চেষ্টা করুন এটি আপনার সমস্ত সমস্যা সমাধান করে কিনা তা দেখুন, আপনার 4115 এর প্রয়োজন হতে পারে ("সমস্ত ক্যোরি অপটিমাইজার ফিক্সগুলি সক্ষম করুন"। )
SELECT SomeColumn
FROM SomeTable
OPTION(QUERYTRACEON 4199)
আমার পরিস্থিতিতে আমার শীর্ষ দশটি ধারা রয়েছে এমন একটি ক্যোয়ারী উড়িয়ে দিয়েছিল যা ছাড়াই ভাল হয়ে গেছে, যা আমাকে ভেবেছিল যে কিছুটা মশালাদার ঘটছে, এবং এটি 4199 সাহায্য করতে পারে।
প্রায় 4199
যে কোনও এসকিউএল সার্ভার ক্যোয়ারী অপ্টিমাইজার বাগ / পারফরম্যান্স ফিক্স যা নতুন বড় সংস্করণ প্রকাশের পরে তৈরি হয়েছিল সেগুলি আসলে লুকানো এবং অবরুদ্ধ হয়ে যায়। এটি যদি এমন হয় তবে তারা সম্ভবত কিছু অন্যান্য তাত্ত্বিকভাবে নিখুঁতভাবে অনুকূলিত হওয়া প্রোগ্রামটির ক্ষতি করতে পারে। সুতরাং, আপডেটগুলি ইনস্টল করুন আপনার মতে, প্রকৃত ক্যোয়ারী অপ্টিমাইজার পরিবর্তনগুলি ডিফল্টরূপে সক্ষম হয় না। অতএব, একবার একক ফিক্স বা বর্ধন করা হয়ে গেলে, আপনি যদি এটির সুবিধা নিতে চান তবে 4199 একটি প্রয়োজনীয়তা হয়ে ওঠে। অনেকগুলি ঠিকঠাক হিসাবে দেখা যায়, যখন কোনও একটি আপনাকে প্রভাবিত করে আপনি অবশেষে নিজেকে এটি চালু করতে দেখবেন। এই ফিক্সগুলি সাধারণত তাদের নিজস্ব ট্রেস পতাকাগুলির সাথে আবদ্ধ থাকে, তবে 4199 মাস্টার হিসাবে ব্যবহৃত হয় "প্রতিটি ফিক্স চালু করুন।"
আপনার যদি ঠিক করা দরকার তবে আপনি 4199 ব্যবহারের পরিবর্তে তাদের টুকরা-খাবার সক্ষম করতে পারবেন all আপনি যদি সমস্ত সংশোধন করতে সক্ষম করতে চান তবে 4199 ব্যবহার করুন।
ঠিক আছে, তাই আপনি বিশ্বব্যাপী 4199 চান ...
কেবলমাত্র একটি এসকিউএল এজেন্ট জব তৈরি করুন যা বিশ্বব্যাপী ট্রেস পতাকা সক্ষম করতে নিম্নলিখিত লাইনের সাথে প্রতিদিন সকালে চলে। এটি নিশ্চিত করে যে কেউ তাদের বন্ধ করেছে বা ইত্যাদি, যাতে তারা ফিরে আসে। এই কাজের পদক্ষেপটি খুব সহজ বর্গক্ষেত্র রয়েছে:
DBCC TRACEON (4199, -1);
যেখানে -1 ডিবিসিসি ট্র্যাকনে গ্লোবাল অংশ নির্দিষ্ট করে। আরও তথ্যের জন্য দেখুন:
https://msdn.microsoft.com/en-us/library/ms187329.aspx?f=255&MSPPError=-2147217396
ক্যোয়ারী প্ল্যানস "রিকম্পাইলিং"
আমার সাম্প্রতিক প্রয়াসে আমাকে বিশ্বব্যাপী 4199 সক্ষম করতে হয়েছিল এবং তারপরে বিদ্যমান ক্যাশেড ক্যোয়ারী পরিকল্পনাগুলিও সরিয়ে ফেলতে হয়েছিল :
sp_recompile 'dbo.SomeTable'
https://msdn.microsoft.com/en-us/library/ms181647.aspx?f=255&MSPPError=-2147217396
যেখানে পুনরায় কম্পাইল করে রাখা পদ্ধতিটি ডাটাবেস অবজেক্ট (যেমন একটি টেবিল) সম্পর্কিত কোনও কোয়েরি প্ল্যানগুলি খুঁজে পায় এবং সেইগুলি অনুসন্ধানের পরিকল্পনাগুলি মুছে দেয়, তাদের সংকলনের জন্য অনুরূপ ক্যোয়ারী চালানোর পরবর্তী প্রচেষ্টা প্রয়োজন।
সুতরাং, আমার ক্ষেত্রে 4199 খারাপ ক্যোয়ারী প্ল্যানগুলি তৈরি হতে বাধা দিয়েছে, তবে আমি এখনও সেগুলিকে অপসারণ করতে হয়েছিল যেগুলি এখনও sp_recompile এর মাধ্যমে ক্যাশে হয়েছিল। প্রভাবিত জ্ঞাত ক্যোয়ারী থেকে যে কোনও সারণী বাছুন এবং আপনি এখনই বিশ্বব্যাপী 4199 সক্ষম করেছেন এবং আপত্তিজনক ক্যাশেড ক্যোয়ারী প্ল্যান সাফ করে নিয়েছেন বলে ধরে নেওয়া উচিত query
4199 এ উপসংহারে
আপনি যখন সূচিগুলি ব্যবহার করেন, তখন স্মার্ট ক্যোয়ারী প্ল্যান অপ্টিমাইজেশনটি সেই সূচকগুলি বুদ্ধিমানের সাথে ব্যবহার করার জন্য গুরুত্বপূর্ণ হয়ে ওঠে এবং ধরে নেওয়া যে সময়ের সাথে সাথে ক্যোয়ারী অপ্টিমাইজেশান প্রক্রিয়াটির জন্য কিছু ফিক্স প্রকাশিত হবে, আপনি সাধারণত নিরাপদে পানিতে মাত্র 4199 দিয়ে বিশ্বব্যাপী সক্ষম, আপনি যতক্ষণ বুঝতে পেরেছেন যে কিছু নতুন ফিক্স সম্ভবত খুব অনুকূলিত ডাটাবেসের সাথে এতটা সুন্দরভাবে না খেলতে পারে যা ঠিক আগেই বলা হয়েছিল ঠিক আগে পরিবেশের ক্ষেত্রে যেমন অনুকূল ছিল। কিন্তু 4199 কি করে? এটি কেবল সমস্ত সংশোধন সক্ষম করে।