এস এসকিউএল সার্ভার ডাটাবেস - প্রতিটি টেবিলের জন্য একটি পৃথক ফাইলের কোনও সুবিধা?


19

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

আমি যেহেতু আমার উপলব্ধ হার্ডওয়্যার (প্রায় GB৪ গিগাবাইট র‌্যাম, একটি খুব দ্রুত এসএসডি এবং ১ c টি কোর) এর বাইরে কর্মক্ষমতাটির প্রতিটি শেষ ড্রপটি সত্যিই চেপে ধরতে চাই, তাই আমি প্রতিটি টেবিলের নিজস্ব ফাইল রাখার অনুমতি দেওয়ার কথা ভাবছিলাম যাতে কোনও ব্যাপার না হলেও আমি 2, 3, 4, 5 বা ততোধিক টেবিলগুলিতে যোগ দিচ্ছি, প্রতিটি টেবিল সর্বদা একটি পৃথক থ্রেড ব্যবহার করে পড়তে হবে এবং প্রতিটি ফাইলের কাঠামোটি টেবিলের বিষয়বস্তুগুলির সাথে ঘনিষ্ঠভাবে সংযুক্ত হবে, যা আশা করা যায় যে খণ্ডগুলি কমিয়ে আনা এবং এটি আরও দ্রুততর করে তোলে এসকিউএল সার্ভারের জন্য কোনও প্রদত্ত টেবিলের বিষয়বস্তু যুক্ত করতে।

একটি সতর্কতা, আমি এসকিউএল সার্ভার ২০০৮ আর 2 ওয়েব সংস্করণে আটকে আছি । যার অর্থ আমি স্বয়ংক্রিয়ভাবে অনুভূমিক পার্টিশনটি ব্যবহার করতে পারি না, যা এটি কার্য সম্পাদন বর্ধন হিসাবে বিবেচনা করে।

টেবিল প্রতি একটি ফাইল ব্যবহার করা কি কার্যকারিতা সর্বাধিক বাড়িয়ে তুলবে, বা আমি কি অন্তর্নির্মিত এসকিউএল সার্ভার ইঞ্জিন বৈশিষ্ট্যগুলিকে উপেক্ষা করছি যা এতটাই বাড়াবাড়ি করবে?

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

উত্তর:


18

আমি প্রতিটি টেবিলকে নিজস্ব ফাইল রাখার অনুমতি দেওয়ার কথা ভাবছিলাম যাতে আমি 2, 3, 4, 5 বা ততোধিক টেবিলগুলিতে যোগদান করি না কেন, প্রতিটি টেবিল সর্বদা একটি পৃথক থ্রেড ব্যবহার করে পড়বে এবং প্রতিটি ফাইলের কাঠামো হবে টেবিলের বিষয়বস্তুগুলির সাথে ঘনিষ্ঠভাবে সংযুক্ত থাকুন, যা প্রত্যাশাজনকভাবে খণ্ডনকে হ্রাস করবে এবং এসকিউএল সার্ভারকে কোনও প্রদত্ত টেবিলের বিষয়বস্তুগুলিতে যুক্ত করার জন্য এটি দ্রুততর করবে

তুমি কিসের কথা বলছ? আপনি কোথা থেকে আপনার তথ্য পেয়েছেন তা নিশ্চিত নন তবে অবশ্যই আপনার উত্সটি বাতিল করা উচিত। আপনি এখানে যা অনুমান করেন তার কিছুই কিছুই আসলে সঠিক নয়।

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

ব্রেন্টেরও এই বিষয়টিতে একটি দুর্দান্ত উপস্থাপনা রয়েছে: এসএসডি তে এসকিউএল: হট এবং ক্রেজি লাভ এবং আরও অনেক কিছু রয়েছে।

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


1
হ্যাঁ, আমাকে লাইনের পাশে কোথাও ভুল তথ্য দেওয়া হয়েছে তবে আমি স্টুয়ার্টের উত্তরে মন্তব্য করার মতো করে প্রশ্নটি জিজ্ঞাসা করেছিলাম যে আমি আমার সিদ্ধান্তগুলি ভুল তথ্যের ভিত্তিতে রাখছি না। লিঙ্কগুলির জন্য ধন্যবাদ, আমি তাদের চেক আউট করব।

17

আমার প্রথম পরামর্শটি হ'ল উভয় কনফিগারেশনের বিরুদ্ধে লোড টেস্টিং না করে পারফরম্যান্স সম্পর্কে কোনও অনুমান না করা।

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

শেষ অবধি, যখন কোনও স্কিএল সার্ভার থেকে কর্মক্ষেত্রের প্রতিটি ড্রপ আটকানোর কথা আসে, আমি আপনাকে নীচের চার্টে উল্লেখ করি (আমার মাইক্রোসফ্ট সরবরাহ করা):

এখানে চিত্র বর্ণনা লিখুন

কোনও অ্যাপ্লিকেশন দৃষ্টিকোণ থেকে তৈরি করা যে কোনও সম্ভাব্য অপ্টিমাইজেশন সহজেই একটি হার্ডওয়্যার / ডাটাবেস কনফিগারেশন স্তরে সম্ভাব্য অপ্টিমাইজেশানগুলি বামন করে ... সুতরাং আপনার মনোযোগ যথাযথভাবে নিবদ্ধ করুন।


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

@ নাথানরিডলি ওকে, বুঝতে পেরেছি ... আমি মনে করি আসল উত্তরটি যদি না কারো কাছে "এমন কখনও করবেন না" বলে সম্বলিত সম্পদ না থাকে তবে কর্মের সর্বোত্তম উপায়টি হ'ল আপনার সাধারণ কাজের চাপের বিপরীতে দুটি কনফিগারেশনের তুলনা করা এবং এটি পরিমাপযোগ্য পার্থক্য আছে কিনা তা দেখুন।
মাইকেল ফ্রেড্রিকসন

4

অন্যরা যেমন উল্লেখ করেছে, সারণীতে প্রতি একটি ফাইল থেকে সরাসরি কোনও লাভ নেই; এখানে কিভাবে এই মিথ সম্ভূত স্টিভ জোনসের একটি দুর্দান্ত সারসংক্ষেপ আছে: http://www.sqlservercentral.com/blogs/steve_jones/2009/10/13/sql-server-legend-data-files-and-threads/

আপনি একটি বিভাজনযুক্ত দৃষ্টিভঙ্গিও তদন্ত করতে চাইতে পারেন যা আমি বিশ্বাস করি যে ২০০৮ ওয়েব সংস্করণ দ্বারা সমর্থিত। পার্টিশনযুক্ত ভিউটির বিরুদ্ধে কোডিং করার জন্য কিছু কৌশল রয়েছে তবে আপনি বিভাজনযুক্ত টেবিলগুলির কার্যকারিতা তুলনামূলকভাবে সহজে নকল করতে পারেন।


2

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

এসকিউএল সার্ভার 2008 আর 2 কি সংক্ষেপণ সমর্থন করে? যদি হ্যাঁ, এটি চালু করুন।

আমি ভুল হলে শুধরে.


কেন আপনি কোনও কার্যকারিতা সুবিধা পাবেন না তা ব্যাখ্যা করতে পারেন? খুব কমপক্ষে, ব্যাখ্যা করুন যখন পৃথক ফাইলগুলি এসকিউএল সার্ভারকে পড়ার জন্য একাধিক থ্রেড ব্যবহার করার অনুমতি দেয়।

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

সমান্তরাল থ্রেড (সারণী / ফাইল) সম্পর্কে আপনার ঠিক আছে তবে আমি মনে করি আপনার কেবলমাত্র একটি শারীরিক ডিস্ক না হওয়া পর্যন্ত পারফরম্যান্স লাভটি ছোট হবে।

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