আমার এক সহকর্মী আমাদের এসকিউএল সার্ভার ২০০৮ আর 2 ডাটাবেসে একটি সঞ্চিত প্রক্রিয়াটির নাম দিয়েছেন sp_something
। আমি যখন এটি দেখলাম তখনই আমি ততক্ষণে ভেবেছিলাম: "এটাই ভুল!" এবং এই অনলাইন নিবন্ধটির জন্য আমার বুকমার্কগুলি অনুসন্ধান করা শুরু করেছে যা এটি ভুল কেন তা ব্যাখ্যা করে, তাই আমি আমার সহকর্মীকে একটি ব্যাখ্যা সরবরাহ করতে পারি।
নিবন্ধে ( ব্রায়ান মোরান দ্বারা ) এটি ব্যাখ্যা করা হয়েছে যে সঞ্চিত পদ্ধতিটি একটি sp_ উপসর্গ প্রদানের ফলে এসকিউএল সার্ভার একটি সংকলিত পরিকল্পনার জন্য মাস্টার ডাটাবেসের দিকে নজর দেয়। যেহেতু sp_sproc
সেখানে বসবাস করে না, এসকিউএল সার্ভার প্রক্রিয়াটি পুনরায় সংকলন করবে (এবং এটির জন্য একচেটিয়া সংকলন লক প্রয়োজন, কর্মক্ষমতা সমস্যা তৈরি করে)।
নিম্নলিখিত পদ্ধতির দুটি পদ্ধতির মধ্যে পার্থক্য দেখানোর জন্য নিবন্ধে দেওয়া হয়েছে:
USE tempdb;
GO
CREATE PROCEDURE dbo.Select1 AS SELECT 1;
GO
CREATE PROCEDURE dbo.sp_Select1 AS SELECT 1;
GO
EXEC dbo.sp_Select1;
GO
EXEC dbo.Select1;
GO
আপনি এটি চালান, তারপরে প্রোফাইলারটি খুলুন (সঞ্চিত পদ্ধতি -> SP:CacheMiss
ইভেন্ট যুক্ত করুন) এবং সঞ্চিত পদ্ধতিগুলি আবার চালান। আপনি দুটি সঞ্চিত পদ্ধতির মধ্যে পার্থক্যটি দেখেছেন বলে মনে করা হচ্ছে: sp_Select1
সঞ্চিত পদ্ধতিটি সঞ্চিত পদ্ধতিটির SP:CacheMiss
চেয়ে আরও একটি ইভেন্ট তৈরি করবে Select1
(নিবন্ধটি এসকিউএল সার্ভার 7.0 এবং এসকিউএল সার্ভার 2000 উল্লেখ করেছে ।)
আমি যখন আমার এসকিউএল সার্ভার ২০০৮ আর 2 এনভায়রনমেন্টে উদাহরণটি চালাই তখন আমি SP:CacheMiss
উভয় পদ্ধতির জন্য একই পরিমাণের ইভেন্ট পাই (টেম্পডিবি এবং অন্য পরীক্ষার ডাটাবেসে উভয়ই)।
তাই আমি ভাবছি:
- উদাহরণটি কার্যকর করার জন্য আমি কি কিছু ভুল করতে পারি?
sproc sp_something
এসকিউএল সার্ভারের নতুন সংস্করণগুলিতে এখনও কি ' ব্যবহারকারীর নাম রাখবেন না ' অ্যাডাগিয়ামটি বৈধ?- যদি তা হয় তবে এসকিউএল সার্ভার ২০০৮ আর 2 এর কোনও কার্যকর উদাহরণ রয়েছে যা?
এই সম্পর্কে আপনার চিন্তার জন্য অনেক ধন্যবাদ!
সম্পাদনা
আমি এসকিউএল সার্ভার ২০০৮ আর 2 এর জন্য এমএসডিএন-তে সঞ্চিত প্রক্রিয়াগুলি (ডাটাবেস ইঞ্জিন) পেয়েছি, যা আমার দ্বিতীয় প্রশ্নের উত্তর দেয়:
আমরা আপনাকে সুপারস হিসাবে sp_ ব্যবহার করে কোনও সঞ্চিত পদ্ধতি তৈরি না করার পরামর্শ দিচ্ছি। এসকিউএল সার্ভার সিস্টেম সঞ্চিত পদ্ধতি নির্ধারণ করতে sp_ উপসর্গ ব্যবহার করে। আপনার চয়ন করা নামটি ভবিষ্যতের কিছু সিস্টেম পদ্ধতির সাথে বিরোধী হতে পারে। [...]
উপসর্গটি ব্যবহার করে যে কারণে পারফরম্যান্স সমস্যা রয়েছে সে সম্পর্কে কিছুই উল্লেখ করা হয়নি sp_
। আমি এখনও জানতে চাই যদি তা এখনও কেস হয় বা তারা এসকিউএল সার্ভার 2000 এর পরে এটি ঠিক করে দেয়।
sp_
? এটি একটি সারণীর উপসর্গ হিসাবে প্রায় দরকারী tbl
। আপনাকে কেন এই অর্থহীন নামকরণ কনভেনশনটি ব্যবহারের অনুমতি দেওয়ার জন্য প্রথমে সিস্টেম সন্ধান মাস্টারকে (যদিও তা তুচ্ছ বা না পারফরম্যান্সের কোনও পার্থক্য নয়)?
dbo.sp_Author_Rename
চেয়ে ভাল তা বোঝাতে তাদের পান dbo.Author_Rename
। আমি বুঝতে পারি না এমন একটি জিনিস যা বোধগম্য হয়।
sp_
সংস্করণগুলি সমাধান করার জন্য কিছুটা বড় ওভারহেডে রেখেছিলাম (মাস্টার এবং ব্যবহারকারীর উভয় ডাটাবেসের মধ্যে এটি পরীক্ষা করা প্রয়োজন কারণ এটিmaster
ব্যবহারকারী ডিবিতে -> প্রক্সগুলিতে সিস্টেম প্রোকে প্রাধান্য দেয়) - নন সিস্টেম প্রোকস ইনmaster
)