হঠাৎ আমাদের সূচি বা ক্যোয়ারী কেন দরকার তা কীভাবে উত্তর দেওয়া যায়


11

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

দেব দলটি প্রায়শই জিজ্ঞাসা করে এমন একটি সহজ প্রশ্ন: "গতকাল ঠিকঠাক চলল, হঠাৎ কী বদলে গেল?" এবং আমাদের অবকাঠামোগত দিকটি পরীক্ষা করতে বলা হবে। যে কোনও সমস্যা সম্পর্কে প্রথম প্রতিক্রিয়া হ'ল সর্বদা প্রত্যাশিত অবকাঠামোটিতে সর্বাধিক দোষ চাপানো বলে মনে হয় যা সর্বদা প্রথম জিনিসটিকে বৈধ করা হচ্ছে।

উন্নয়ন টিমের "কী পরিবর্তন হয়েছে" প্রশ্নের উত্তর আমাদের কীভাবে দেওয়া উচিত? আপনি ছেলেরা কি কখনও একই পরিস্থিতিতে পড়েছিলেন? যদি তা হয় তবে দয়া করে আপনার অভিজ্ঞতা শেয়ার করুন।

উত্তর:


10

দেবের পরিবর্তিত প্রশ্নের উত্তর কীভাবে দেবেন?

এটি কেবলমাত্র ডিইভি দিয়েই নয়, এটি আইটি এবং ব্যবসায় প্রতিটি দলে প্রযোজ্য।

কী বদলে গেল? ==> তথ্য এবং পরিসংখ্যান দ্বারা উত্তর দেওয়া যেতে পারে।

ঘটনা উদাহরণস্বরূপ উল্লেখ করুন

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

আপনার কাছে ডেটা দেখাতে থাকলে চিত্রগুলি পাওয়া যাবে। উদাহরণ স্বরূপ :

  • এই পরিস্থিতিতে আপনার সার্ভারকে বেসলাইনিং করা সমালোচনা করে। এটি দোষের খেলাকে হ্রাস করবে যেহেতু আপনি দৃ solid়সংখ্যার সাহায্যে তথ্যগুলিকে সমর্থন করতে পারেন।
  • কোনও টেবিলের DMVs বা sp_Woisactive ব্যবহার করে ডেটা সংগ্রহ করা শুরু করুন, যাতে স্ক্যুয়াল সার্ভার পুনরায় বুট করার পরে ডেটা স্থির থাকে।

(আপনাকে আপনার পরিবেশ এবং প্রয়োজনীয়তার উপর ভিত্তি করে ওয়ার্কআউট করতে হবে, কত ঘন ঘন ডেটা সংগ্রহ করতে হবে / কোন ডেটা সংগ্রহ করতে হবে এবং ধরে রাখার সময়কাল কত হবে) বা (আপনি স্ক্ল্যাসেন্ট্রি বা আদর্শের ডায়াগনস্টিক ম্যানেজারের মতো তৃতীয় পক্ষের সফ্টওয়্যারটিতে বিনিয়োগ করতে পারেন যে আপনার জন্য উপরের কাজটি করবে)


7

ঠিক আছে, আপনি অন্যরকম পরিকল্পনা পাচ্ছেন কারণ:

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

আমি এখানে আরও বিস্তারিতভাবে অনেকগুলি দিয়ে যাচ্ছি:

এগুলি যদি বিভিন্ন পরিবেশে চলতে থাকে তবে আমার এখানে চেক করার জন্য একটি সম্পূর্ণ সিরিজ রয়েছে:

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


7

যথারীতি হারুন বার্ট্র্যান্ড এবং কিন in ভাল উত্তর সরবরাহ করেছিলেন। তবে উভয় উত্তর একটি সাধারণ থ্রেড ধারণ করে। যদি আপনি উভয় উত্তরের বিশ্লেষণ করে দেখেন যে XYZ গতকাল যেভাবে কাজ করেছে তার কারণ আপনি / তারা / ব্যক্তি এক্স করেছেন এমন কিছু নয়। জিনিসগুলির পরিবর্তনের কারণটি হ'ল XYZ কারণে ডেটাবেসগুলি ভিন্নভাবে কাজ করার সিদ্ধান্ত নিয়েছে।

একটি ডাটাবেস একটি জীবন্ত, শ্বাসপ্রশ্বাসের সত্তা । অনুমান, পরিসংখ্যান এবং অন্যান্য হিউরিস্টিক সরঞ্জামগুলির সংমিশ্রণের কারণে ডেটাবেসগুলি সিদ্ধান্ত নেবে এবং তার মন পরিবর্তন করবে। এটি বেশিরভাগ অ্যাপ্লিকেশন স্তর প্রোগ্রামিংয়ের চেয়ে নাটকীয়ভাবে আলাদা (মেশিন লার্নিং একটি উল্লেখযোগ্য ব্যতিক্রম being

আমি কিছু সামরিক রেফারেন্স ব্যবহার করতে যাচ্ছি কারণ আমি এই মুহূর্তে আরও ভাল কিছু ভাবতে পারি না। আরও সাধারণ রূপক প্রশংসা করা হবে (কোন পাং উদ্দেশ্যে নয়)।

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

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

* আমি ভবিষ্যতে প্রতিরোধ, শেখার ইত্যাদির জন্য "কেন" খুব মূল্যবান তা স্বীকার করি তবে মনে হয় ওপি এমন সমস্যাগুলির বিরুদ্ধে প্রতিরোধের মুখোমুখি হচ্ছেন যাঁরা সমস্যাটি সম্পর্কে শেখার বা সহায়তা করার চেষ্টা করছেন না।

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