ট্রেস পতাকা 4199 - বিশ্বব্যাপী সক্ষম?


19

এটি মতামতের বিভাগের অধীনে আসতে পারে তবে আমি আগ্রহী যদি লোকেরা এসকিউএল সার্ভারের জন্য একটি স্টার্টআপ প্যারামিটার হিসাবে ট্রেস পতাকা ব্যবহার করে 4199 । যারা এটি ব্যবহার করেছেন তাদের জন্য, আপনি কোন পরিস্থিতিতে কোয়েরি রিগ্রেশন অনুভব করেছেন?

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

4199-এ সংশোধনগুলি কি 2014 (বা 2016) এ ডিফল্টরূপে অপ্টিমাইজারে পরিণত হয়েছে? যদিও অপ্রত্যাশিত পরিকল্পনার পরিবর্তনগুলি প্রবর্তন না করার জন্য আমি কেসটি বুঝতে পারি, তবে সংস্করণগুলির মধ্যে এই সমস্ত সংশোধন গোপন রাখা অদ্ভুত বলে মনে হয়।

আমরা 2008, 2008 আর 2 এবং বেশিরভাগ 2012 ব্যবহার করছি।


আপনি কি বর্তমানে কার্ডিনালিটির অনুমানের সমস্যাগুলি বা কোনও কিছু অনুভব করছেন?
জেন

পতাকাটি সক্ষম করে দেওয়া পরিবর্তনগুলি কী আপনি পড়েছেন তা দেখার জন্য তারা কী আপনার পক্ষে উপকৃত হবে?
সোয়াশেক

আমি তাদের মাধ্যমে পড়ছি, বেশিরভাগ প্রাসঙ্গিক বলে মনে হচ্ছে, বিশেষ করে মাল্টি-কলামে যোগ দেয়।
FilamentUnities

উত্তর:


20

ব্যক্তিগতভাবে, যখনই আমি একটি নতুন প্রকল্পের জন্য একটি নতুন সার্ভার তৈরি করি আমি সর্বদা বিশ্বব্যাপী TF4199 সক্ষম করি। আমি বিদ্যমান সংস্করণগুলিকে আরও নতুন সংস্করণে আপগ্রেড করলে একই জিনিস প্রযোজ্য।

টিএফ নতুন ফিক্সগুলি সক্ষম করে যা অ্যাপ্লিকেশনটির আচরণের উপর প্রভাব ফেলবে তবে নতুন প্রকল্পগুলির জন্য রিগ্রেশন হওয়ার ঝুঁকি কোনও বিষয় নয়। পূর্ববর্তী সংস্করণগুলি থেকে আপগ্রেড হওয়া উদাহরণগুলির জন্য, পুরানো এবং নতুন সংস্করণের মধ্যে পার্থক্যগুলি তাদের নিজেরাই উদ্বেগ এবং পরিকল্পনা প্রতিরোধের সাথে মোকাবিলা করা যেকোনো উপায়ে প্রত্যাশিত, তাই আমি টিএফ 4১৯৯ সক্ষম করে এটির সাথে লড়াই করতে পছন্দ করি।

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

স্পষ্টতই, পতাকাটি পুরো উদাহরণটিকে প্রভাবিত করে, তাই আপনাকে সেখানে বসে সমস্ত ডাটাবেস পরীক্ষা করতে হবে।


12
এছাড়াও লক্ষণীয় গুরুত্বপূর্ণ যে তারিখের সমস্ত 4199 ফিক্সগুলি এসকিউএল সার্ভার 2016 তে চালু করা হবে (ট্রেস পতাকা ছাড়াই)। 4199 এখনও কাজ করবে, তবে কেবলমাত্র সেই বিন্দু থেকে নতুন ফিক্সগুলি সক্ষম করবে।
অ্যারন বার্ট্র্যান্ড

6

বিষয়টিতে আমার অনুসন্ধান আমাকে এখানে এনেছে, তাই আমি ঠিক এই বিষয়টিতে আমার সাম্প্রতিক অভিজ্ঞতাটি ভাগ করে নিতে চাই।

আমি এসকিউএল 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 কি করে? এটি কেবল সমস্ত সংশোধন সক্ষম করে।


1

আমি আমার অভিজ্ঞতা ট্রেস পতাকা 4199 এর সাথে ভাগ করতে চেয়েছিলাম।

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

ওয়ালটিপি সিস্টেমে চালিত একটি নমুনা ক্যোয়ারী 1.6 সেকেন্ডের মধ্যে শেষ হয়েছে। ক্যোয়ারী পরিকল্পনাটি একটি সূচিটি 200 মিলিয়ন ডলার সারি সারণিতে সন্ধান করেছে যা দেখার একটি অংশ ছিল।

নতুন সার্ভারে, একই কোয়েরিটি 10 ​​মিনিট 44 সেকেন্ডের মধ্যে শেষ হয়েছে। এটি একই ~ 200 মিলিয়ন সারি টেবিলটিতে একটি সূচক স্ক্যান করেছে performed

রিপোর্টিং সার্ভার ডেটা ওলটিপি ডেটার একটি অনুলিপি ছিল, সুতরাং এটি ডেটাতে কোনও পার্থক্য বলে মনে হয় নি।

আমার স্মার্টফোন (যা তাদের ওয়ালটিপি সিস্টেম চালায়) শুরুতে কিছু ট্রেস পতাকা সক্ষম করে তা স্মরণ না করা পর্যন্ত আমি স্ট্যাম্পড হয়ে গেলাম। এর মধ্যে একটি, 4199, আমি স্মরণ করিয়েছিলাম যে একটি ক্যোরি অপটিমাইজার ফিক্স।

আমি গ্রাহকের নতুন প্রতিবেদক সার্ভারে ট্রেস পতাকা 4191 সক্ষম করার পরীক্ষা করেছি এবং রিপোর্টিং কোয়েরি 0.6 সেকেন্ডের মধ্যে শেষ হয়েছে। (বাহ!) আমি ট্রেস পতাকাটি অক্ষম করে দিয়েছিলাম এবং ক্যোরিটি 10 ​​মিনিট 44 সেকেন্ডে শেষ হয়েছিল। পতাকাটি সক্ষম করেছে: 0.6 সেকেন্ডে ফিরে। স্পষ্টতই, ট্রেস পতাকা সক্ষম করে অপ্টিমাইজারটিকে 200 মিলিয়ন সারি টেবিলের দৃষ্টিতে একটি সূচক সন্ধান করতে সক্ষম করে।

এই ক্ষেত্রে, ট্রেস পতাকা 4199 দ্বারা সক্ষম ক্যোয়ারী অপ্টিমাইজেশানগুলি একটি দুর্দান্ত পার্থক্য করেছে। আপনার অভিজ্ঞতা বিভিন্ন হতে পারে। যাইহোক, এই অভিজ্ঞতার ভিত্তিতে, এটি অবশ্যই আমার জন্য সার্থক বলে মনে হচ্ছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.