আপডেটের বিবৃতিতে একটি সূচকের প্রভাব যেখানে আপডেট কলাম কোনও সূচীতে নেই


16

আমি ক্রমাগত মানুষ বলে ইনডেক্স মন্দীভূত দেখতে update, deleteএবং insert। এটি কম্বল স্টেটমেন্ট হিসাবে ব্যবহৃত হয়, যেন এটি নিরঙ্কুশ।

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

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

যদি আমার কাছে কলামগুলি থাকে যা কোনও সূচকে অন্তর্ভুক্ত থাকে না এবং আমি সেগুলি আপডেট করি তবে সেগুলি কি কেবল ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বেড়ে যায়?

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


so there is no way they will not affect the indexইনডেক্স ফিল্টার জন্য ছাড়া ...
usr ডিরেক্টরির

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

উত্তর:


6

আপনি ঠিক বলেছেন যে একটি অন-সূচক কলাম আপডেট করা সূচিগুলিতে পরিবর্তন ঘটাবে না। একটি সাধারণ ক্ষেত্রে, টেবিলের উপর কোনও সামগ্রিক প্রভাব পড়বে না।

যদি কোনও কোয়েরি ডেটা সন্ধানের জন্য সূচকটি ব্যবহার করতে পারে তবে এটি অনুসন্ধানকে ত্বরান্বিত করতে পারে তবে সঠিক আচরণ (আপনার এসকিউএল ব্র্যান্ডের উপর নির্ভর করে) এসকিউএল এর অন্যান্য ব্র্যান্ডের থেকে পৃথক হতে পারে। (আমি প্রাথমিকভাবে মাইক্রোসফ্ট এসকিউএল সার্ভার ব্যবহার করি))

অবশ্যই, তথ্যের একটি উল্লেখযোগ্যভাবে বৃহত্তর ভলিউম সহ একটি কলাম আপডেট করার ফলে কিছু পৃষ্ঠাগুলিতে সারি সরানো হতে পারে, ইত্যাদি।


1
এসকিউএল সার্ভারের ওপিতে উল্লেখ করা হয়েছে, আমি একটি ট্যাগ যুক্ত করেছি, তাই আমি মনে করি আপনি এসকিউএল সার্ভার ধরে নিতে পারবেন
টম ভি - টিম মনিকা

10

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

আপনি এই ধারনাটিতে সঠিক যে অনেক প্রশ্নের জন্য দরকারী সূচকের উপস্থিতি খুব লক্ষণীয় গতির উন্নতির ফলস্বরূপ।

যদিও আপনার প্রশ্নটি পারফরম্যান্সের আশেপাশে দেখা যাচ্ছে, তত্ক্ষেত্রে সূচকগুলি যুক্ত করার আশেপাশে আরও কয়েকটি সম্ভাব্য সমস্যা রয়েছে যার মধ্যে রয়েছে তবে সীমাবদ্ধ নয়:

  1. সূচী তৈরি করতে প্রয়োজনীয় সময় সূচকটি সারণীতে যুক্ত হওয়ার সময় অবরুদ্ধ হতে পারে। লকটি খুব স্বল্পস্থায়ী, সম্ভবত খুব বড় সমস্যা তৈরি হবে না।

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

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

  4. একটি নতুন সূচক মৃত্যুদন্ডের ক্রম পরিবর্তনের কারণ হতে পারে যার ফলে সম্ভাব্য ডেডলকগুলি ঘটেছিল যেখানে আগে এমন ঘটনা ঘটেনি।


"যখন সূচকটি প্রভাবিত হচ্ছে না তখন আপডেটের জন্য প্রয়োজনীয় কোড পাথটির মূল্যায়ন করা দরকার" এটি সত্য নয়। সংকলন / অপ্টিমাইজেশন পর্বটি খুব ভালভাবেই জানবে যে সূচিগুলি আপডেট করার দরকার আছে, যদি কোনও হয় এবং সে অনুযায়ী পরিকল্পনাটি তৈরি করে। একটি আপডেটের বিবৃতি যা সূচকে কলামগুলি (এসইটি তালিকায় ঘোষণা করে) সংশোধন করে না (ইনক্লুড এবং ক্লাস্টার কী কলামগুলি সহ) সেই সূচিটি আপডেট করতে হবে না, এবং কার্যকরকরণের পর্যায়ে এমনকি এটি স্পর্শ করবে না। মুছে ফেলুন এবং INSERT স্পষ্টতই সমস্ত কলাম (যৌক্তিকভাবে) স্পর্শ করুন এবং সমস্ত সূচী আপডেট করতে হবে।
রেমাস রুসানু

@ রেমুসরুসানু তবে সূচিটি আপডেট করা দরকার এমন সারিগুলি সনাক্ত করতে ব্যবহার করা যেতে পারলে মূল্যায়ন করার দরকার নেই?
টম ভী - টিম মনিকা

@ রেমাসরুসানু - আমি মনে করি একবার কিউও পরিকল্পনা তৈরি করে ফেললে আর সিপিইউ দরকার হয় না; তবে পরিকল্পনাটি সংকলিত করার জন্য অবশ্যই এটি করা দরকার। যদি পরিকল্পনাগুলি ঘন ঘন সংকলিত হয় তবে এটি খুব সামান্য পার্থক্য করতে পারে।
ম্যাক্স ভার্নন

@ টমভি সূচকটি মুছে ফেলার / আপডেট প্রার্থী সারি (গুলি) সনাক্ত করতে সম্পূর্ণ ভিন্ন বিষয়। যদি এটি হয় তবে একটি সূচকের মাধ্যমে সারিগুলি সনাক্ত করার সুবিধাগুলি কোনও সূচি রক্ষণাবেক্ষণ ব্যয়ের সমস্যাগুলিকে কাটিয়ে উঠতে হবে।
রেমাস রুসানু

@ ম্যাক্স ভার্নন আমি যুক্তি দেব যে ডিএমএল (আপডেট) এর ঘন ঘন পুনঃসংশোধনের কোনও বৈধ দৃশ্য নেই। আমি অ্যাড-হক অনুসন্ধানের জন্য বৈধ (অপরিবর্তনীয়?) পুনঃসংশোধনের জন্য কিছু কেস কিনি । কিন্তু ডিএমএল? কোন ধরণের অ্যাপ্লিকেশনটি অ্যাড-হক, অনন্য আপডেটের বিবৃতি তৈরি করতে পারে? ডিএমএলের সাথে ঘন ঘন পুনঃসংশোধনগুলি উচ্চস্বরে "আমাকে প্যারামিটারাইজ করুন" বলে চিৎকার করে।
রেমাস রুসানু

-2

আপডেট অপারেশন যদি স্থির আকারের (একটি পূর্ণসংখ্যার মতো) একটি অ-সূচক কলামকে লক্ষ্য করে, তবে এটি সাধারণত ধীর হওয়া উচিত নয়, তবে একটি নির্বাচনী বিবৃতিটির সাথে তুলনা করে, আপডেটটি ধীরে ধীরে ধীর ডিস্কেও লিখতে হবে।

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