বেঞ্চমার্কিং ডাটাবেস


14

আমি db 'x' এর পারফরম্যান্স বা 'x' থেকে 'y' এ চলে যাওয়া আমাদের সাইটের কার্যকারিতা উন্নত করার বিষয়ে প্রচুর আলোচনা ঘুরে দেখছি।

আমি এখনও সঠিক বেঞ্চমার্কিং দেখতে পাচ্ছি না যা বিভিন্ন ধরণের ডাটাবেস জুড়ে কাজ করে।

  1. রিলেশনাল, ডকুমেন্ট-ওরিয়েন্টেড ইত্যাদির মতো একাধিক ডিবি ধরণের ক্ষেত্রে ব্যবহার করা যেতে পারে এমন কোনও অর্থবোধক মানদণ্ডটি লিখতে কি সম্ভব?

  2. আপনি কীভাবে এই জাতীয় মানদণ্ড ডিজাইন করতে যাবেন?


ইয়াহু রিসার্চ দ্বারা বিশদ স্তরের উদাহরণ হিসাবে আমাকে যেকোন ডাটাবেস বেঞ্চমার্ককে গুরুত্ব সহকারে এই কাগজটি দেখে নেওয়া উচিত । আপনার কাছে আমার কাছে সত্যিকারের উত্তম উত্তর নেই, অন্য যে আমি সন্দেহ করি যে সিএপি সমঝোতা এবং অ্যাসিমেট্রিগুলি হ'ল মূল কারণ হ'ল বেঞ্চমার্কিং ডেটাবেসগুলি এতই কঠিন।
ইয়ান্নিস

উত্তর:


19

সংক্ষিপ্ত উত্তর

হ্যাঁ , আপনি যদি এটি যত্ন সহকারে করেন তবে আপনি কোনও অধ্যয়নকৃত মামলার অর্থবহ মানদণ্ড লিখতে পারেন এবং বুঝতে পারেন যে এটি যদি বিশেষ ক্ষেত্রে প্রাসঙ্গিক হয় তবে এটি অন্যান্য ক্ষেত্রে নাও হতে পারে। একই ধরণের ডাটাবেসগুলি (রিলেশনাল ডাটাবেস বনাম অন্য আরেকটি রিলেশনাল ডাটাবেস) বা বিভিন্ন ধরণের ডাটাবেসগুলির সাথে তুলনা করার সময় এটি একইভাবে সত্য।

না , আপনি এমন একটি মাপদণ্ড লিখতে পারবেন না যা যাদুবিদ্যার দ্বারা প্রমাণিত হবে যে প্রতিটি অ্যাপ্লিকেশনের জন্য একটি নির্দিষ্ট ডাটাবেস প্রতিটি ক্ষেত্রে অন্যের চেয়ে ভাল।

দীর্ঘ উত্তর

এটি অবশ্যই বলা সম্ভব যে "একটি ডেটাবেস থেকে অন্যটিতে যাওয়ার ফলে আমাদের সাইটের কর্মক্ষমতা উন্নত হয়েছে"।

  1. প্রোফাইলগুলি বা রানটাইম পরিসংখ্যানগুলির মাধ্যমে আপনি পূর্ববর্তী ডাটাবেসের কার্যকারিতা পরিমাপ করে কোয়েরিগুলি এবং কত দ্রুত সেগুলি সম্পর্কে পর্যাপ্ত তথ্য সংগ্রহ করে।

  2. আপনি অ্যাপ্লিকেশনটিকে নতুন ডাটাবেসে স্থানান্তরিত করুন।

  3. আপনি একই ব্যবস্থা।

  4. আপনি তুলনা করুন।

উদাহরণস্বরূপ, যদি 2.834 এস মধ্যে লোড 3 182 432 পণ্যের সম্পূর্ণ তালিকা। একটি পুরানো ডাটাবেসে এবং 0.920 এস এ লোড করে। নতুন ডাটাবেসে, উভয় ক্ষেত্রেই, অ্যাপ্লিকেশনটির খালি ক্যাশে রয়েছে, এটি একটি জয়: নতুন ডাটাবেসটি এই কোয়েরিতে আপনার সাইটের কার্যকারিতা উন্নত করেছে।

এখন, কোনও পারফরম্যান্স মেট্রিক হিসাবে, এটি পক্ষপাতদুষ্ট:

  • সম্মত, নতুন ক্যোয়ারীটি দ্রুত faster তবে অপেক্ষা করুন, আপনার ডিবিএ আপনার আগে যে ডাটাবেসটি ব্যবহার করবেন তা জানেন না , সুতরাং যে পণ্যটি সমস্ত পণ্য লোড করে তা অনুকূলিত হয় না । আপনি যদি এটির মতো আবারও লিখেন তবে আপনি 0.855 এস-এ এই পণ্যগুলি লোড করতে সক্ষম হবেন। পরিবর্তে 2.834।

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

  • কিছু প্রশ্নগুলি দ্রুত হয়। কিছু ধীরে ধীরে। নতুন ডাটাবেসে যাওয়ার সময় আপনি সামগ্রিকভাবে পারফরম্যান্স অর্জন করেছেন তা জানতে আপনি গড় ফলাফলকে কীভাবে গণনা করবেন? ঠিক আছে, আপনি সমস্ত 3 182 432 পণ্য লোড করার সময়টি দ্রুত। তবে কি বিষয়টি বিবেচিত হবে যখন প্রশ্নটি কেবলমাত্র বিরল ক্ষেত্রেই কার্যকর করা হয় যখন কোনও প্রশাসক নির্দিষ্ট দশটি কার্য সম্পাদন করেন যখন তিনি গত দশ বছরে মাত্র দু'বার সম্পাদন করেছিলেন? অন্যদিকে, কোনও নতুন ব্যবহারকারীর জন্য হোম পৃষ্ঠায় সমস্ত প্রশ্নগুলি কার্যকর করে 0.281 গুলি অপচয় করে। নতুন ডাটাবেস সহ, যখন এটি ছিল 0.207। পুরানো ডাটাবেস সহ। এই ফলাফলটি আরও অনেক বিষয় বিবেচনা করে, বিশেষত যেহেতু এই প্রশ্নগুলি দীর্ঘ সময়ের জন্য ক্যাশে করা যায় না এবং প্রতিদিন কয়েক হাজার বার মৃত্যুদন্ড কার্যকর করা হয়।

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

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

সর্বাধিক ভয়ানক ভুল হ'ল মানদণ্ডগুলি থেকে এই সিদ্ধান্তগুলি নেওয়া এবং "মাইক্রোসফ্ট এসকিউএল সার্ভার ওরাকলের চেয়ে তিনগুণ দ্রুত" এর মতো কিছু বোকামি উপস্থাপন করা: এটি এই বলে যে "পিএইচপি থেকে জাভা ভাল" like আরও ভাল সংজ্ঞা দিন। কোন ক্ষেত্রে ভাল? কি ধরণের অ্যাপ্লিকেশন জন্য? ডেভেলপারদের কোন দলের জন্য?

আপনি যত বেশি ব্যাখ্যা এবং সাধারণীকরণ করবেন তত বেশি জিনিস অপ্রাসঙ্গিক এবং অর্থহীন হয়ে পড়ে।

আপনি যে ক্যোয়ারীটি select [...]ফাইলটিতে # 832 সংশোধনটিতে দেখতে পাচ্ছেন ProductFactory.cs, লাইন 117 0.5 এস এর অধীনে কার্যকর করা হয়েছে। অ-কার্যকরী প্রয়োজনীয়তা সংযুক্তি M, কেস 3-এ উল্লিখিত শর্তগুলির অধীনে যখন পরীক্ষা করা হয় তখন নতুন ডাটাবেসের সাহায্যে এটি অ-কার্যকরী প্রয়োজনীয়তা 527 (পৃষ্ঠা 80, সংশোধন 9 দেখুন) পাস করার অনুমতি দেয়। পূর্ববর্তী ডাটাবেসগুলির সাথে একই প্রয়োজনীয়তা সন্তুষ্ট ছিল না, যখন পরীক্ষার ফলাফল 0.9..1.3 এস সীমার মধ্যে ছিল। একই পরিস্থিতিতে।

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

দুঃখের বিষয়, এটি পরিচালনার জন্য কোনও ধারণা রাখে না। পরিবর্তে:

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

একটি খাঁটি বিপণন জিব্বার-জ্যাবার, এবং, প্রযুক্তিগতভাবে, কোনও অর্থ নয়, তবে আশ্চর্যরূপে পরিচালনা এবং বিপণন বিভাগগুলির জন্য একটি মূল্য রয়েছে has

পরিশেষে, আমরা বিভিন্ন ধরণের ডাটাবেস তুলনা করতে পারি? আমি এটি সম্পূর্ণ সম্ভব বলব। ধরা যাক আমার কাছে একটি বড় ছবি হোস্ট করার একটি ওয়েবসাইট রয়েছে। এই ফটোগুলি varbinary(max)মাইক্রোসফ্ট এসকিউএল সার্ভার 2005 এ সঞ্চিত আছে (সুতরাং আমি ব্যবহার করতে পারি না filestream)। আমি photos ফটোগুলি লোড করার সময় কর্মক্ষমতা সম্পর্কে উদ্বিগ্ন, তাই আমি ফাইলগুলি আমার নতুন ডাটাবেস হিসাবে ফাইল পরিবর্তে ফাইল হিসাবে সংরক্ষণ করার সিদ্ধান্ত নিয়েছি। প্রথমত, সেই ফাইলগুলি ডাটাবেসের চেয়ে একই মেশিনে সংরক্ষণ করা হয়। আমি নতুন সমাধানটির প্রোফাইল দিচ্ছি এবং ফলাফলটি পেয়েছি যা দেখায় যে আমার ক্ষেত্রে মাইক্রোসফ্ট এসকিউএল সার্ভারের চেয়ে ফাইল সিস্টেম থেকে ফাইলগুলি 4% দ্রুত লোড করা হয়। মানদণ্ডটি খুব স্পষ্ট is এখন আমি মাইক্রোসফ্ট এসকিউএল সার্ভারের জন্য অনুকূলিত সার্ভারটি ব্যবহার না করে সরাসরি ফাইল স্টোরেজ জন্য অনুকূলিত ডেডিকেটেড সার্ভার স্থাপন করার বিষয়ে ভাবতে পারি।


2
  1. বড় ডেটাবেস সংস্থাগুলি এবং ওপেন সোর্স ডিবি অ্যাপ্লিকেশনগুলিতে বিকাশকারীদের বৃহত গোষ্ঠীর সাথে সমস্ত অর্থ ঝুঁকিতে রয়েছে, যদি এটি করার কোনও উপায় থাকে, তবে তারা এখনই এটি বের করে ফেলবে (এবং ফলাফলটি পুরো ইন্টারনেটে ব্লাস্ট করেছে)। )।

  2. আমি না। পরিবর্তে, নির্দিষ্ট প্রয়োজন এবং পরিবেশের জন্য নির্দিষ্ট মানদণ্ড তৈরি করুন।

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


1

না, তাদের মধ্যে পার্থক্যগুলি এমন যে কোনও একটি বেঞ্চমার্ক পক্ষপাতদুষ্ট হবে।

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

ডিবি বেঞ্চমার্ক সাইটের ক্ষেত্রে, অ্যালগরিদমগুলি প্রয়োগ করার পরিবর্তে (ভাষা শ্যুটআউটের ক্ষেত্রে), পরীক্ষাগুলিতে কাঁচা ডেটা থাকতে পারে যা নির্দিষ্ট সীমাবদ্ধতা অনুসারে সংরক্ষণ করতে হয় এবং তারপরে পুনরুদ্ধার করতে পারে। উদাহরণস্বরূপ, সম্ভবত কাঁচা ডেটার একটি সেট রয়েছে যা কোনও সম্প্রদায়ের পাঠাগার পৃষ্ঠপোষক এবং বইগুলি ট্র্যাক করার জন্য কী ব্যবহার করতে পারে তার একটি সাধারণ স্কিমা প্রতিনিধির প্রতিনিধিত্ব করে information প্রতিটি ডিবি অবশ্যই সমস্ত 1 মিলিয়ন রেকর্ড সংরক্ষণ করতে হবে এবং তারপরে সীমাবদ্ধতাগুলি পূরণ করে এমন ডেটার কিছু উপ-সেট পুনরুদ্ধার করবে। তারপরে, এমন একটি ডেটা সেটও থাকতে পারে যা কিছু খুব সাধারণ কাঠামো / সম্পর্কের প্রতিনিধিত্ব করে (সম্ভবত একটি মন্তব্য সিস্টেম যা সাধারণত ইএসপিএন ইত্যাদির জন্য ব্যবহৃত সাইটগুলির জন্য ব্যবহৃত হয়) এতে ১০০ মিলিয়ন রেকর্ড রয়েছে এবং এটিতে নিজস্ব নিজস্ব প্রশ্নের একটি সেট রয়েছে যা সম্পাদন করতে হবে । প্রভৃতি

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


0

আমি আরও কয়েকটি কারণ যুক্ত করতে চাই, কেন আপনি সমস্ত ধরণের ডাটাবেস বেনমার্ক করতে পারবেন না।

  1. ডাটাবেস সিস্টেমের দুটি প্রধান দিক রয়েছে: ওএলএপ এবং ওলটিপি ( তুলনা দেখুন )।

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

সংক্ষেপে: আপনি তর্ক করবেন না, যে একটি লাম্বারগিনি বিশ্বের সেরা গাড়ি । ট্রাঙ্কের আয়তন, আসনের সংখ্যা বা মাইলেজের কথা ভাবেন।

পার্শ্ব নোট হিসাবে: ওলটিপি ডাটাবেস সিস্টেমগুলির জন্য এখানে একটি মানদণ্ড।

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