กระบวนงานที่เก็บ SQL Server

กระบวนงานที่เก็บไว้ให้ประสิทธิภาพสูงและรักษาความปลอดภัย

Microsoft SQL Server มีกลไกการจัดเก็บกระบวนงานเพื่อลดขั้นตอนการพัฒนาฐานข้อมูลโดยการจัดกลุ่มคำสั่ง Transact-SQL ให้เป็นบล็อคที่สามารถจัดการได้ ขั้นตอนการจัดเก็บเป็นที่ชื่นชมโดยนักพัฒนา SQL Server ส่วนใหญ่ที่พบประสิทธิภาพและประโยชน์ด้านความปลอดภัยที่พวกเขาเก็บเกี่ยวจะคุ้มค่ากับการลงทุนล่วงหน้าในเวลา

ประโยชน์ของการใช้กระบวนงานที่เก็บไว้

ทำไมนักพัฒนาซอฟต์แวร์ควรใช้วิธีการจัดเก็บ

นี่คือประโยชน์หลักของเทคโนโลยีนี้:

ขั้นตอนการจัดเก็บมีความคล้ายคลึงกับฟังก์ชันที่ผู้ใช้กำหนด แต่มีความแตกต่างที่ลึกซึ้ง

โครงสร้าง

ขั้นตอนการจัดเก็บจะคล้ายกับโครงสร้างที่เห็นได้ในภาษาโปรแกรมอื่น ๆ

พวกเขายอมรับข้อมูลในรูปแบบของพารามิเตอร์อินพุตที่ระบุในเวลาดำเนินการ พารามิเตอร์อินพุตเหล่านี้ (ถ้ามีการใช้งาน) ถูกนำไปใช้ในการดำเนินการชุดคำสั่งที่ให้ผลลัพธ์บางอย่าง ผลลัพธ์นี้ถูกส่งกลับไปยังสภาพแวดล้อมการเรียกผ่านการใช้ชุดระเบียนพารามิเตอร์ขาออกและรหัสการส่งคืน

อาจจะฟังเหมือนคำพูด แต่คุณจะพบว่าขั้นตอนการจัดเก็บเป็นจริงค่อนข้างง่าย

ตัวอย่าง

ลองมาดูตัวอย่างการปฏิบัติที่เกี่ยวข้องกับตารางที่ชื่อว่าพื้นที่โฆษณาที่ด้านล่างของหน้านี้ ข้อมูลนี้ได้รับการอัปเดตในแบบเรียลไทม์และผู้จัดการคลังสินค้าจะตรวจสอบระดับผลิตภัณฑ์ที่เก็บไว้ในคลังสินค้าของตนอย่างต่อเนื่องและสามารถจัดส่งได้ ในอดีตผู้จัดการแต่ละคนจะเรียกใช้ข้อความค้นหาที่คล้ายกับข้อความต่อไปนี้:

เลือกสินค้าจำนวน
FROM สินค้าคงคลัง
WHERE Warehouse = 'FL'

ส่งผลให้ประสิทธิภาพการทำงานของ SQL Server ลดลง แต่ละครั้งที่ผู้จัดการคลังสินค้าดำเนินการแบบสอบถามเซิร์ฟเวอร์ฐานข้อมูลถูกบังคับให้คอมไพล์ใหม่แบบสอบถามและรันคำสั่งดังกล่าวตั้งแต่เริ่มต้น นอกจากนี้ผู้จัดการคลังสินค้ายังต้องมีความรู้เกี่ยวกับ SQL และสิทธิ์ที่เหมาะสมในการเข้าถึงข้อมูลตาราง

แต่กระบวนการนี้สามารถทำได้ง่ายขึ้นโดยใช้ขั้นตอนที่เก็บไว้ นี่คือโค้ดสำหรับขั้นตอนที่เรียกว่า sp_GetInventory ซึ่งเรียกคืนระดับพื้นที่เก็บข้อมูลสำหรับคลังสินค้าที่ระบุ

สร้างกระบวนการ sp_GetInventory
@vocation varchar (10)
เช่น
เลือกสินค้าจำนวน
FROM สินค้าคงคลัง
WHERE Warehouse = @ สถานที่

ผู้จัดการคลังสินค้าในฟลอริดาสามารถเข้าถึงระดับพื้นที่โฆษณาได้โดยการออกคำสั่ง:

ดำเนินการ sp_GetInventory 'FL'

ผู้จัดการคลังสินค้าในนิวยอร์กสามารถใช้ขั้นตอนเดียวกันกับที่เก็บไว้เพื่อเข้าถึงพื้นที่โฆษณาของพื้นที่นั้น ๆ :

ดำเนินการ sp_GetInventory 'NY'

ได้รับนี่เป็นตัวอย่างง่ายๆ แต่คุณสามารถเห็นประโยชน์ของสิ่งที่เป็นนามธรรมได้ที่นี่ ผู้จัดการคลังสินค้าไม่จำเป็นต้องเข้าใจ SQL หรือการทำงานภายในของกระบวนการ จากมุมมองของประสิทธิภาพกระบวนงานที่จัดเก็บไว้เป็นสิ่งมหัศจรรย์ SQL Server สร้างแผนปฏิบัติการหนึ่งครั้งและใช้งานได้อีกครั้งโดยเสียบพารามิเตอร์ที่เหมาะสมในเวลาดำเนินการ

ตอนนี้คุณได้เรียนรู้ถึงประโยชน์ของกระบวนงานที่เก็บไว้แล้วให้ออกไปและใช้พวกเขา

ลองใช้ตัวอย่างและวัดผลการปรับปรุงที่ได้รับ - คุณจะประหลาดใจ!

ตารางพื้นที่โฆษณา

ID สินค้า คลังสินค้า ปริมาณ
142 ถั่วเขียว นิวยอร์ก 100
214 เมล็ดถั่ว ฟลอริด้า 200
825 ข้าวโพด นิวยอร์ก 140
512 ถั่วลิมา นิวยอร์ก 180
491 มะเขือเทศ ฟลอริด้า 80
379 แตงโม ฟลอริด้า 85