পারফরম্যান্স তুলনা চালানোর আগে এসকিউএল সার্ভার ক্যাস সাফ করার আদেশ দেয়


46

দুটি পৃথক প্রশ্নের মৃত্যুদন্ডের সময়টির তুলনা করার সময়, প্রথম ক্যোয়ারির প্রয়োগটি দ্বিতীয়টির কার্যকারিতা পরিবর্তন করে না তা নিশ্চিত করার জন্য ক্যাশে সাফ করা গুরুত্বপূর্ণ।

একটি গুগল অনুসন্ধানে, আমি এই আদেশগুলি খুঁজে পেতে পারি:

DBCC FREESYSTEMCACHE
DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE

আসলে, আমার প্রশ্নগুলি আগের চেয়ে বেশ কয়েকটি ফাঁসি কার্যকর করার পরে আরও বাস্তবসম্মত সময় নিচ্ছে। তবে, আমি নিশ্চিত নই যে এটি প্রস্তাবিত কৌশল।

সেরা অনুশীলন কি?

উত্তর:


44

ব্যক্তিগতভাবে, একটি সাধারণ ক্যোয়ারির জন্য ২ য় এবং পরবর্তী ফাঁসির বিষয়টি আরও গুরুত্বপূর্ণ।

আপনি কি ডিস্ক আইও পরীক্ষা করছেন বা কোয়েরি পারফরম্যান্স?

আপনার ক্যোয়ারী প্রায়শই চলমান এবং সমালোচনামূলক, ধরে নিলে আপনি এটি বাস্তব জীবনের অবস্থার অধীনে পরিমাপ করতে চান। এবং আপনি প্রতিবার প্রোড সার্ভার ক্যাশে সাফ করতে চান না ...

যদি তুমি চাও তুমি পারো:

  • DBCC DROPCLEANBUFFERSবাফার পুল থেকে পরিষ্কার (
    অশোধিত ) পৃষ্ঠাগুলি সাফ করে দেয় এর আগে যে CHECKPOINTকোনও নোংরা পৃষ্ঠাগুলিকে প্রথমে ডিস্কে ফ্লাশ করতে হবে
  • DBCC FLUSHPROCINDB সেই ডাটাবেসের জন্য কার্যকর করার পরিকল্পনা সাফ করে

আরও দেখুন (ডিবিএ.এসই তে)


3
চলতে গিয়ে একটি ত্রুটি পেয়েছে DBCC FLUSHPROCINDB: ডিবিসিসি বিবৃতিতে একটি ভুল সংখ্যক পরামিতি দেওয়া হয়েছিল।
জিন

অবশেষে এটি খুঁজে পেয়েছে: DECLARE @myDb AS INT = DB_ID(); DBCC FLUSHPROCINDB(@myDb); GOএখান থেকে: stackoverflow.com/questions/7962789/…
হান্স ভন

14

দেরীতে উত্তর তবে অন্যান্য পাঠকদের কাজে লাগতে পারে

ডিবিসিসি ড্রপক্লিয়েনবিউফার্স ক্যোয়ারী পরীক্ষার জন্য এবং পরীক্ষার গতি পরীক্ষা করার জন্য প্রায়শই ব্যবহৃত কমান্ড। এই কমান্ডটি (যখন চালানো হয়) কেবলমাত্র নোংরা পৃষ্ঠাগুলির পিছনে ফেলে দেয় যা আসলে ডেটার একটি ছোট অংশ। এটি একটি সম্পূর্ণ সার্ভারের সমস্ত পরিষ্কার পৃষ্ঠা মুছে ফেলে।

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

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

এটি একটি দরকারী বিকাশের সরঞ্জাম হতে পারে কারণ আপনি স্মৃতিতে ডেটা ক্যাশে করার কারণে গতি / দক্ষতায় কোনও পরিবর্তন ছাড়াই বার বার পারফরম্যান্স পরীক্ষার পরিবেশে একটি ক্যোয়ারী চালাতে পারেন।

এখানে আরও শিখুন: http://www.sqlshack.com/insight-into-the-sql-server-buffer-cache/


9

আমাকে সর্বদা ব্যবহার করতে বলা হয়েছিল:

dbcc dropcleanbuffers;

এমএসডিএন থেকে :

সার্ভারটি বন্ধ না করে এবং পুনরায় চালু না করে একটি শীতল বাফার ক্যাশে দিয়ে কোয়েরি পরীক্ষার জন্য DBCC DROPCLEANBUFFERS ব্যবহার করুন।

বাফার পুল থেকে পরিষ্কার বাফারগুলি নামাতে, প্রথমে একটি শীতল বাফার ক্যাশে তৈরি করতে চেকপয়েন্ট ব্যবহার করুন। এটি বর্তমান ডাটাবেসের সমস্ত নোংরা পৃষ্ঠাগুলিকে ডিস্কে লিখিত হতে বাধ্য করে এবং বাফারগুলি সাফ করে। আপনি এটি করার পরে, আপনি বাফার পুল থেকে সমস্ত বাফার সরানোর জন্য DBCC DROPCLEANBUFFERS কমান্ড জারি করতে পারেন।


2
প্লাস: DBCC FREEPROCCACHEকোনও ক্যাশেড এক্সিকিউশন প্ল্যান সাফ করার জন্য ...
মার্চ_স

1
আপনি যদি আইও পরীক্ষা করতে চান তবে অবশ্যই ...
gbn

3

অন্যান্য উত্তরগুলি চালনা না করার কারণগুলি সম্পর্কে সঠিক DBCC FREEPROCCACHE। তবে এটি করার কয়েকটি কারণও রয়েছে:

  1. দৃঢ়তা

আপনি যদি দুটি ভিন্ন প্রশ্ন বা পদ্ধতিগুলি যা একই উপায়ে বিভিন্ন উপায়ে করার চেষ্টা করছেন তা তুলনা করতে চান, তারা একই পৃষ্ঠাগুলিতে হিট হওয়ার সম্ভাবনা রয়েছে। আপনি যদি নির্লিপ্তভাবে ক্যোয়ারী # 1 চালনা করেন তবে ক্যোয়ারী # 2, দ্বিতীয়টি খুব দ্রুত হতে পারে কারণ এই পৃষ্ঠাগুলি প্রথম ক্যোয়ারী দ্বারা ক্যাশে হয়েছিল। আপনি যদি প্রতিটি মৃত্যুদন্ড কার্যকর করার আগে ক্যাশে সাফ করেন তবে এগুলি একটি সমৃদ্ধকরণ শুরু করে।

আপনি যদি হট-ক্যাশে পারফরম্যান্স পরীক্ষা করতে চান, তবে ক্যোয়ারী কয়েকবার চালানোর বিষয়ে নিশ্চিত হন, পর্যায়ক্রমে, এবং প্রথম দুটি রান বাতিল করুন। ফলাফলগুলি গড় করুন।

  1. সবচেয়ে খারাপ ক্ষেত্রে পারফরম্যান্স

বলুন আপনার কাছে এমন একটি জিজ্ঞাসা রয়েছে যা উত্তপ্ত ক্যাশেটির বিরুদ্ধে এক সেকেন্ড সময় নেয় তবে শীতল ক্যাশের বিরুদ্ধে এক মিনিট সময় নেয়। একটি অপ্টিমাইজেশন যা ইন-মেমরি কোয়েরিকে ২০% ধীর করে তোলে তবে আইও-বাউন্ড কোয়েরি ২০% দ্রুত হতে পারে এটি একটি বড় জয় হতে পারে: সাধারণ ক্রিয়াকলাপের সময়, কেউ সাধারণ পরিস্থিতিতে অতিরিক্ত 200 এমএস লক্ষ্য করবে না, তবে যদি কোনও কিছু জিজ্ঞাসা জোর করে ডিস্কের বিপরীতে চালান, 60 এর পরিবর্তে 48 সেকেন্ড সময় নিলে বিক্রয় বাঁচাতে পারে।

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

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