সঞ্চিত প্রক্রিয়াগুলির জন্য ফাঁসির কার্যকর পরিকল্পনা


12

সঞ্চিত পদ্ধতির ক্যাশে থেকে অনুপস্থিত হওয়ার পরিকল্পনা কী কী?

  1. WITH RECOMPILE
  2. গতিশীল এসকিউএল
  3. এনক্রিপ্টড কোড
  4. উল্লেখযোগ্য ডেটা পরিবর্তন
  5. পরিসংখ্যান আপডেট করুন
  6. আর কি?

আমি সম্প্রতি 2 টি সার্ভার (এসকিউএল সার্ভার 2008 আর 2 এবং এসকিউএল সার্ভার 2012) এ কাজ করেছি যা খুব রিসোর্স-নিবিড় স্টোরেজ পদ্ধতিগুলির জন্য ক্যাশে পরিকল্পনা করে না। অনেকগুলি, সম্ভবত সবগুলিই, স্টোরেজ পদ্ধতির ভিতরে থাকা বিবৃতিগুলিরও ক্যাশে পরিকল্পনা ছিল না। সঞ্চিত কিছু প্রক্রিয়া সেকেন্ডে কয়েকবারের মতো প্রায়শই ঘন ঘন সম্পাদন করে।

যাই হোক না কেন কোনও স্মৃতির চাপ নেই। একটি সার্ভারের প্রয়োজনের তুলনায় অনেক বেশি হার্ডওয়্যার রয়েছে।

আমি ভেবেছিলাম অনুপস্থিত পরিকল্পনাগুলি সঞ্চিত পদ্ধতির মাঝখানে অস্থায়ী টেবিল তৈরির কারণে হয়েছিল তবে এটি এসকিউএল সার্ভার 2000 বা তার আগের তথ্যগুলির পুরানো তথ্য বলে মনে হচ্ছে। এসকিউএল সার্ভার ২০০৫ থেকে শুরু করে, ডিডিএল-এর পরে বিবৃতিগুলির জন্য বিবৃতি স্তরে পুনরুদ্ধারগুলি ঘটে। সব ক্ষেত্রেই কি এটি সত্য বা এটি নতুন সংস্করণে এখনও ঘটতে পারে?

অনুপস্থিত পরিকল্পনার অপরাধী আর কী হতে পারে? আমি এই বিষয়টিতে কয়েকটি নিবন্ধ রেখেছি, তবে কিছুই মানায় না।

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

আমি বিশ্বাস করি না যে কেউ প্রক্রিয়া ক্যাশে মুক্ত করছে বা পরিষ্কার বাফার ফেলে দিচ্ছে। এই ক্লায়েন্টটি তাদের অন্যতম পর্যবেক্ষণ সরঞ্জাম হিসাবে সোলারউইন্ডস ডিপিএ ব্যবহার করছে। ডিপিএ একদিনে একবার ডেকে আনা স্টোর প্রোক-তে বিবৃতি দেওয়ার জন্য একটি কার্যকর করার পরিকল্পনা গ্রহণ করেছিল। অ-সরজযোগ্য WHEREধারাটির কারণে এই বিবৃতিটিতে প্রচুর পরিমাণে পঠন রয়েছে । ডিপিএ যদি বিবৃতিটি ধারণ করে, তবে এটি একটি অনুমানিত পরিকল্পনা এবং এক সময় পরিকল্পনার ক্যাশে ছিল was সমস্যা সমাধানের সময় কেবল সেখানে নেই। আমি তাদের sp_WhoIsActiveএকটি টেবিলে লগিং শুরু করব ।

আমি ব্যবহার করছি sp_BlitzCache। (আমি ব্রেন্ট ওজার আনলিমিটেডের জন্য কাজ করি) এটি সম্পূর্ণ সঞ্চিত পদ্ধতির পরিকল্পনার পাশাপাশি স্বতন্ত্র বিবৃতিগুলির উপস্থিতিগুলির পরিকল্পনাগুলি প্রদর্শন করবে। যদি এগুলির অস্তিত্ব না থাকে তবে এটির একটি সতর্কতার জন্য এটি রয়েছে "" আমরা এই ক্যোয়ারির জন্য কোনও পরিকল্পনা খুঁজে পাইনি this এর সম্ভাব্য কারণগুলির মধ্যে ডায়নামিক এসকিউএল, RECOMPILEইঙ্গিত এবং এনক্রিপ্টড কোড অন্তর্ভুক্ত রয়েছে। " এবং সেই সতর্কতা বিবৃতিতেও রয়েছে।

টিএফ 2371 জায়গা নেই। আমি অপেক্ষা পরিসংখ্যান তাকান। সার্ভারটি বেশ উদাস। PLE 130,000 এরও বেশি।

আমার কাছে এখন আরও 2 টি সঞ্চিত পদ্ধতির কোড রয়েছে। এর মধ্যে একটি গতিশীল এসকিউএল ব্যবহার করছে exec (@sql)যাতে এটির জন্য কেন পরিকল্পনা নেই তা আমরা জানি। তবে অন্যটি, এবং এটি হ'ল যা প্রতি মিনিটে 100 বারের বেশি চলছে, সাধারণের বাইরে কিছুই নেই। একমাত্র যেটির মধ্যে দাঁড়িয়ে আছে তা হল 1000 টিরও বেশি লাইনের কোডের মাঝে অস্থায়ী সারণী তৈরি করা হচ্ছে। এটি সন্তানের সঞ্চিত প্রক্রিয়াগুলির একটি গুচ্ছকেও কল করে।

এসকিউএল সার্ভার ২০০৮-এ প্ল্যান ক্যাচিংয়ের বিষয়ে , আমি কোনও আক্ষরিক> = 8 কে দেখছি না, তবে অন্য কোনও সঞ্চিত প্রক্রিয়া বলার আগে একটি সঞ্চিত পদ্ধতিতে বাল্ক সন্নিবেশ সম্পর্কে একটি মন্তব্য রয়েছে। তবে যে বাইরের সঞ্চিত পদ্ধতিটি আমি দেখছি তাতে বাল্ক সন্নিবেশ উপস্থিত হয় না। নিবন্ধটির "রিকম্পিলেশন থ্রেশহোল্ড" বিভাগটি আকর্ষণীয়। অস্থায়ী টেবিলগুলির জন্য আমি যা দেখছি তা হ'ল টন ইনসার্ট (এর ফলে কয়েক মিলিয়ন সারি হতে পারে), কিছু আপডেট এবং মুছে ফেলা। তাই অস্থায়ী টেবিলগুলিতে প্রচুর ডেটা পরিবর্তন হয়। লক্ষ লক্ষ।


আপনার কাছে যেমন সমস্যাযুক্ত ত্রুটি রয়েছে এমন সংরক্ষণ করা আছে আপনি কি এমন একটি ন্যূনতম উদাহরণ তৈরি করতে পারেন যা এটি পুনরায় প্রতিরোধ করবে এবং এর ফলে সমস্যাটি খুঁজে বের করতে পারেন?
মার্টিন স্মিথ

উত্তর:


3

দুটি প্ল্যান ক্যাশে ডিএমএফ রয়েছে:

sys.dm_exec_query_plan - এক্সএমএল ফর্ম্যাটে ক্যাশেড প্লানগুলি প্রদান করে তবে কেবলমাত্র একটি নির্দিষ্ট আকার পর্যন্ত (এবং কেবলমাত্র এসকিউএল সার্ভারে এক্সএমএল হিসাবে ফর্ম্যাট করা যায়, যার অর্থ 128 নেস্টেড স্তর পর্যন্ত))

sys.dm_exec_text_query_plan - কোনও আকারের পাঠ্য বিন্যাসে ক্যাশেড প্ল্যানগুলি প্রদান করে। তবে ত্রুটিটি হ'ল যখন পরিকল্পনাগুলি বড় হয়, আপনি সেগুলি এসকিউএল সার্ভারের ভিতরে এক্সএমএলে রূপান্তর করতে পারবেন না, এবং এমনকি এক্সপ্লোর পরিচালনা টিএমএল হিসাবে একটি ট্রায়াল_কন্টভার্ট নাল ফেরায়।

sp_BlitzCache কেবল প্রাক্তন ডিএমভিকেই হিট করেছে (কারণ এটি সমস্ত ধরণের কাটা এবং ডাইসিং করার জন্য এক্সএমএল হিসাবে ক্যোয়ারী পরিকল্পনাগুলি বিশ্লেষণ করা দরকার this) আমি এটি উন্নত করতে গিথুবকে # 838 ইস্যু করেছিলাম যাতে আমরা কমপক্ষে ব্যবহারকারীদেরকে sys.dm_exec_text_query_plan চেক করতে যেতে পারি বড় প্রশ্ন। যদিও আমরা এখনও এটি নিয়ে এক্সএমএল বিশ্লেষণ করতে পারব না।


এবং একই কারণটি sys.query_store_plan.query_planহ'ল nvarchar(MAX)এক্সএমএল (এসকিউএল ট্রিভিয়া) নয়।
রিমাস রুসানু

@ রেমুসরুসানু ওও, এত বড় পরিকল্পনা সেখানে প্রদর্শিত হবে! খুশী হলাম।
ব্রেন্ট ওজার

আপনি যা খুঁজে পেয়েছেন তার অনুপস্থিত পরিকল্পনাগুলির কারণে আমরা তা যাচাই করছি। ফিরে শুনার সাথে সাথে আমি একটি আপডেট পোস্ট করব।
তারা কিসর

আমি ক্লায়েন্টের কাছ থেকে ফিরে না শুনেও উত্তর হিসাবে এটি চিহ্নিত করছি king এটি কেবলমাত্র একমাত্র জিনিস যা এটি হতে পারে এবং প্রচুর প্রশ্নগুলির দ্বারা বোঝা যায়। কিছু পরিবর্তন হলে আমি একটি আপডেট পোস্ট করব।
তারা কিজার

@ তারাকাইজার আপনি কেবল এটি করছেন কারণ আপনার ত্রৈমাসিক পর্যালোচনা আসছে, তাই না? আমি আপনি কি কি আছে দেখতে। বোনাস আনলক করা।
ব্রেন্ট ওজার

0

সম্ভবত আপনাকে এক্সএমএল সর্বাধিক আকারের সমন্বয় করতে হবে যা এসএসএমএস দ্বারা গ্রিডে ফেরত যেতে পারে?


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