কাঁচা ক্যোয়ারী বনাম সঞ্চিত পদ্ধতির দক্ষতা


23

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


2
আপনি যা পড়েছেন তার কিছু লিঙ্ক পোস্ট করতে পারেন? আমি মনে করি না এখানে পারফরম্যান্স ঝুঁকিপূর্ণ (কমপক্ষে সরাসরি নয়)
জ্যাক ডগলাস

1
@ জ্যাকডৌগ্লাস, মর্ডেনি এর উত্তর দেখুন। পারফরম্যান্স এই প্রশ্ন / উত্তরের একটি অংশ।
থমাস স্ট্রিংগার

উত্তর:


31

এটি এসকিউএল সার্ভার ২০০৮ এবং এর চেয়ে বেশি এর চেয়ে কম তবে এটি এখনও রয়েছে। এটি যেটি নেমে আসে তা হ'ল এক্সিকিউশন প্ল্যান ক্যাশে এবং এসকিউএল সার্ভার যে প্রশ্নগুলি প্রেরণ করা হয় তা অটো-প্যারামিট্রাইজ করতে সক্ষম হয় stored সঞ্চিত প্রক্রিয়াগুলি ব্যবহার করার সময় (যেগুলির মধ্যে ডায়নামিক এসকিউএল নেই) প্রশ্নগুলি ইতিমধ্যে প্যারামাইট্রাইজ করা হয়েছে যাতে এসকিউএল সার্ভার না করে ' পরিকল্পনাটি ইতিমধ্যে পরিকল্পনার ক্যাশে সঞ্চিত হওয়ায় প্রতিটি ক্যোয়ারির জন্য পরিকল্পনা তৈরি করার দরকার নেই for

এবং সুরক্ষিত সমস্যাগুলি (গতিশীল এসকিউএল, ন্যূনতম অনুমতি ইত্যাদি) সম্পর্কে ভুলে যাবেন না যা সঞ্চিত পদ্ধতি ব্যবহার করার পরে চলে যায়।

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

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

প্রদত্ত যে এসকিউএল ইঞ্জেকশনটি একটি ডাটাবেসের মধ্যে প্রবেশের সহজতম উপায়, এটি এক ধরণের গুরুত্বপূর্ণ।


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

হ্যাঁ, যদি তারা সম্পূর্ণ প্যারামেট্রাইজড হয়। তবে এটি সুরক্ষিত সমস্যাগুলি সমাধান করে না যা সঞ্চিত পদ্ধতিতে সমাধান করা হয়।
mrdenny

10

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

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

কাঁচা প্রশ্নের উপরের পদ্ধতির ন্যায়সঙ্গততায় পারফরম্যান্স অন্তর্ভুক্ত করা অবশ্যই আরও কঠিন হয়ে উঠছে। আমার পক্ষে এখন সবচেয়ে শক্তিশালী যুক্তি হ'ল "আপনি যদি পদ্ধতি ব্যবহার করেন তবে পারফরম্যান্সের সমস্যা দেখা দিলে আমার পক্ষে সাহায্য করা অনেক সহজ"। একটি গতিশীল / লিনক / ওআরএম ইন্টারফেস আপনাকে সুর দেওয়ার থেকে বাধা দেয় না, তবে এটি আপনার বিকল্পগুলিকে মারাত্মকভাবে সীমাবদ্ধ করতে পারে।


Single একক ব্যবহারের পরিকল্পনাগুলি মুছতে স্ক্রিপ্টগুলি সহ এখানে একটি দুর্দান্ত সম্পর্কিত নিবন্ধ রয়েছে। sqlskills.com/blogs/kimberly/…
সোমগুই

7

এসকিউএল সার্ভার একইভাবে সঞ্চিত পদ্ধতি এবং অ্যাড-হক এসকিউএলকে ক্যাচ করে এবং অনুকূলিত করে। উদাহরণস্বরূপ, এই পদ্ধতি:

create procedure dbo.TestSB(@id int) as select * from Orders where id = @id

অপ্টিমাইজড এবং একইভাবে ক্যাশে করা হবে:

select * from Orders where id = @id

তবে হার্ডকডযুক্ত মানের কারণে নিম্নলিখিত অ্যাডহক এসকিউএল কার্যকরভাবে ক্যাশে করা যায় না:

select * from Orders where id = 42

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


+1 বিশেষত যদি আপনি আপনার এসপিগুলিতে যাওয়ার জন্য সমস্ত অ্যাক্সেস জোর করে এবং সেগুলি কেবল একটি CRUD স্তর নয় বরং লেনদেনের এপিআই হিসাবে বিবেচিত হয়
জ্যাক ডগলাস

২০০৮+ id = 42এ সাধারণ / জোর করে প্যারামিটারাইজেশন সেটিংসের উপর নির্ভর করে একই পরিকল্পনাটি ব্যবহার করে ক্যোয়ারীটি অনুকূল করা যায়। অবশ্যই প্রশ্নের সঠিকভাবে পরামিতি করা উচিত ized :-)
অ্যারন বারট্র্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.