SQL Server შენახული პროცედურები

შენახული პროცედურები უზრუნველყოფს მაღალი ეფექტურობისა და უსაფრთხოების უპირატესობებს

Microsoft SQL Server უზრუნველყოფს შენახვის პროცედურულ მექანიზმს, რათა გამარტივდეს მონაცემთა ბაზის განვითარების პროცესი ტრანსკომანტული-SQL- ს განცხადებების მართვადი ბლოკების დაჯგუფებით. შენახული პროცედურები აფასებენ უმეტეს SQL Server დეველოპერებს, რომლებიც პოულობენ ეფექტურობასა და უსაფრთხოების სარგებელს, რაც მათ აიღონ, კარგად აფასებენ upfront საინვესტიციო დროში.

შენახული პროცედურების გამოყენების უპირატესობები

რატომ უნდა შეიქმნას დეველოპერი შენახულ პროცედურებს?

აქ არის ძირითადი სარგებელი ამ ტექნოლოგია:

შენახული პროცედურები არის მომხმარებლის განსაზღვრული ფუნქციების მსგავსი, მაგრამ არის დახვეწილი განსხვავებები.

სტრუქტურა

შენახული პროცედურები მსგავსია სხვა პროგრამირულ ენებზე.

ისინი იღებენ მონაცემებს შეყვანის პარამეტრების სახით, რომლებიც მითითებულია აღსრულების დროს. ეს შეყვანის პარამეტრები (თუ განხორციელდა) გამოყენებულია რამდენიმე შედეგის წარმოდგენისას, რომლებიც წარმოადგენენ რამდენიმე შედეგს. ეს შედეგი დაუბრუნდება დარეკვის გარემოს ჩანაწერით, გამომავალი პარამეტრების და დაბრუნების კოდით.

ეს შეიძლება იყოს გასწავლოთ mouthful, მაგრამ თქვენ ნახავთ, რომ შენახული პროცედურების საკმაოდ მარტივია.

მაგალითი

მოდით შევხედოთ პრაქტიკულ მაგალითს, რომელიც უკავშირდება ცხრილში მოცემულ ცხრილში მოცემულ ინვენტარს. ეს ინფორმაცია რეალურ დროში განახლდება და სასაწყობო მენეჯერები მუდმივად შეისწავლიან მათი საწყობში შენახული პროდუქციის დონეს და გადასატანად. წარსულში, თითოეული მენეჯერი გაუძღვება შეკითხვებს, როგორიცაა:

SELECT პროდუქტი, რაოდენობა
ინვენტარიდან
სად საწყობი = 'FL'

ამან გამოიწვია SQL Server- ზე არაეფექტური შესრულება. ყოველ ჯერზე სასაწყობე მენეჯერის მიერ შესრულებული მოთხოვნა, მონაცემთა ბაზის სერვერი იძულებული გახდა, გაიმეორონა შეკითხვა და შეასრულოს იგი ნულიდან. მან ასევე მოითხოვა სასაწყობე მენეჯერი SQL- ს ცოდნა და სათანადო ნებართვა მაგიდაზე ინფორმაციის ხელმისაწვდომობისთვის.

ამის ნაცვლად, პროცესი შეიძლება გამარტივებული იყოს შენახული პროცედურის გამოყენებით. აქ არის კოდი პროცედურისთვის, რომელსაც მოუწოდა sp_Get ინვენტარი, რომელიც ინახავს საწყობის ინვენტარის დონეს.

შექმენით პროცედურა sp_Get ინვენტარი
@ ადგილმდებარეობა უბანი (10)
AS
SELECT პროდუქტი, რაოდენობა
ინვენტარიდან
სად სასაწყობო = @ ადგილი

ფლორიდის სასაწყობე მენეჯერს მაშინ შეუძლია შეაგროვოს ინვენტარიზაცია ბრძანების გაცემის გზით:

ამოიცნობთ sp_Get ინვენტარი 'FL'

ნიუ-იორკის სასაწყობო მენეჯერმა შეიძლება გამოიყენოს იმავე შენახული პროცედურა, რომელიც დაკავშირებულია ამ ტერიტორიის ინვენტარით:

EXPUTE sp_Get ინვენტარი 'NY'

ცხადია, ეს მარტივი მაგალითია, მაგრამ აბსტრაქციის სარგებელი აქ ჩანს. საწყობის მენეჯერი არ უნდა გაიგოს SQL ან პროცედურის შიდა სამუშაოები. შესრულების პერსპექტივიდან, შენახული პროცედურა მუშაობს სასწაულები. SQL Server ქმნის შესრულების გეგმა ერთხელ და შემდეგ reutilizes იგი ჩართვის შესაბამისი პარამეტრების დროს შესრულების დროს.

ახლა, რომ თქვენ შეიტყო სარგებელი შენახული პროცედურები, გავიდნენ და გამოიყენოთ ისინი.

სცადეთ რამდენიმე მაგალითი და მივაღწიოთ შესრულების გაუმჯობესებას - თქვენ გაოცდებით!

ინვენტარი მაგიდა

ID პროდუქტი საწყობი რაოდენობა
142 მწვანე ლობიო NY 100
214 ბარდა FL 200
825 სიმინდი NY 140
512 ლიმა ლობიო NY 180
491 პომიდვრები FL 80
379 საზამთრო FL 85