Trong bài viết lần này bọn họ đã với mọi người trong nhà mày mò hàm, thủ tục với trigger trong SQL Server là cái gì với được thực hiện ra làm sao với cùng coi test chúng tất cả kinh sợ, nguy khốn cùng cao siêu tựa như những gì phần đa tín đồ thường nghĩ hay không

*

(Những ví dụ vào nội dung bài viết dựa vào các đại lý dữ liệu sakila - https://dev.mysql.com/doc/sakila/en/sakila-installation.html)

Stored procedure (Thủ tục)

Stored procedure là chiếc gì?

Là đoạn công tác kịch bản (programming scripts) cùng với những câu lệnh Squốc lộ nhúng (embedded SQL) được lưu lại bên dưới dạng đã có biên dịch cùng thực hành thực tiếp bởi MySQL VPS,

SP có thể chấp nhận được lưu trữ các logic ứng dụng trên cơ sở dữ liệu. Khi Call SP. lần thứ nhất, MySQL sẽ tạo một kế hoạch thực thi cùng tàng trữ nó trong bộ nhớ lưu trữ đệm. Ở hầu hết lần Gọi hàm tiếp sau, MySquốc lộ áp dụng sử dựng lại lịch xúc tiến được lưu giữ vô cùng nhanh khô cùng với hiệu xuất đáng tin cậy.

Bạn đang xem: Thủ tục trong sql là gì

SP là 1 trong mã Squốc lộ đã chuẩn bị sẵn mà bạn cũng có thể lưu giữ, vì thế đoạn mã hoàn toàn có thể được thực hiện lại những lần.

Vì vậy, nếu bạn gồm một truy tìm vấn SQL nhưng mà các bạn viết đi viết lại những lần, hãy giữ nó bên dưới dạng một thủ tục được tàng trữ, tiếp nối chỉ việc gọi nó nhằm thực hiện nó.

Cũng hoàn toàn có thể gửi các tyêu thích số cho 1 thủ tục được lưu trữ, nhằm giấy tờ thủ tục được tàng trữ rất có thể chuyển động dựa vào (các) quý giá tđê mê số được truyền vào.

Vì sao bắt buộc cần sử dụng Stored procedure

Giảm dư thừa mã cmùi hương trình: Các đoạn mã tương tự trong số vận dụng nlỗi thêm, update hoàn toàn có thể lưu giữ nghỉ ngơi phía CSDL

Cải thiện tốc độ tiến hành câu lệnh SSQL

Bảo trì: Nếu gồm sự chuyển đổi trong cơ sở dữ liệu, mã lệnh bắt buộc thay đổi rất có thể xác minh trong số SP

An ninc CSDL tốt hơn: Trong những vận dụng an toàn cao, cùng với SP.. có thể điều hành và kiểm soát truy vấn tài liệu với chỉ dẫn các nguyên tắc an ninh triệu tập.

Nhược điểm của Stored procedure

Thiếu tính khả gửi (Lachồng of Portability)SP.. nặng nề chuyển từ 1 DBMS qua một DBMS không giống. Yêu cầu xây dựng cùng kiểm test lại xứng đáng kểSQLServer: T-SQLOracle: PL-SQLTải DB ServerSử dụng SPhường các hoàn toàn có thể khiến quá sở hữu MySQL VPS (Squốc lộ Server đề nghị lưu trữ rất nhiều kế hoạc thực thi)Hạn chế ngôn ngữ lập trìnhLập trình SPhường ko nhiều mẫu mã nhỏng những nền tảng gốc rễ cải cách và phát triển khác như Java hay PHPLưu ý: Các phiên phiên bản sau này của MySquốc lộ có thể cung cấp những đồ họa có thể chấp nhận được chế tác những SPhường. sử dụng những ngôn từ phía bên ngoài, ví dụ Java

Sử dụng Stored Procedure khi?

Thực hiện rất nhiều phxay tân oán phức tạp, lặp lại nhiều lầnProject yên cầu nghiêm khắc về vận tốc thực thi . Stored Procedure cho tốc độ xúc tiến nhanh hao rộng đối với những câu lệnh SQL Server thường thì vị Stored Procedure đã có lưu sẵn tại SQL hệ thống, thế nên nó chỉ việc Điện thoại tư vấn một mẫu lệnh để thực thi Stored Procedure, vấn đề này góp tăng tốc độ thực thi.Trong quy trình chế tác Stored Procedure, SQL Server đã về tối ưu hóa đầy đủ mẫu lệnh này, vấn đề đó hỗ trợ cho tốc độ thực thi cao hơn câu lệnh SQL thường thì tương đối nhiều.

Xem thêm: Download Adobe Illustrator Cc 2017 Full Crack Vĩnh Viễn, Download Full Adobe Indesign Cc

Không đề nghị thực hiện Stored Procedure khi?

Store Procedured có tác dụng quy trình debug trngơi nghỉ bắt buộc khó khăn hơn.

Vì vậy hãy suy nghĩ mang đến Stored Procedure như thể giải pháp cuối cùng nhằm tối ưu hóa vận tốc thực thi lịch trình.Các project tất cả size nhỏ dại và vừa yêu cầu ưu tiên áp dụng các thỏng viện ORM (Object Relation Mapping), nlỗi Entity Framework cho C#, TypeORM đến NodeJs.

Sự khác nhau của Thủ tục, Hàm

Thủ tục (PROCEDURE)Hàm (FUNCTION)
Cách gọiCALLSử dụng những câu lệnh vào sql nhỏng SELECT, UPDATE
Giá trị trả vềcũng có thể một hoặc các hiệu quả SELECT với các tmê man số outTrả về một giá trị nhất thông qua RETURN
Các tyêu thích sốGiá trị (input) và tđắm say chiếu (output) Các ttê mê số (IN, OUT, INOUT)Chỉ những giá trị tđắm say số vào (input). Không phải các thẻ như IN..
hotline thủ tục/hàmcũng có thể Điện thoại tư vấn các thủ tục và hàm khácChỉ hoàn toàn có thể điện thoại tư vấn những hàm khác

Cú pháp tạo thành Thủ tục/Hàm

CREATE FUNCTION name () RETURNS datatype sqlcode

CREATE PROCEDURE name () sqlcode

Ví dụ

Tạo một thủ tục thương hiệu uspActorList trả về danh sách first_name, last_name của những actor thu xếp theo first_name

CREATE PROCEDURE uspActorListASBEGIN SELECT first_name, last_price FROM actor ORDER BY first_name;END;Tạo một thủ tục tên uspActorList có ttê mê số nguồn vào là max_id trả về list first_name, last_name của các actor sắp xếp theo first_name cùng bao gồm id CREATE PROCEDURE actorList(IN max_id INT)ASBEGIN SELECT first_name, last_price FROM actor WHERE actor_id Tạo một function thương hiệu film_in_stoông xã trả về con số với đầu vào (IN) là p_film_id, p_store_id, áp ra output (OUT) là p_film_count

CREATE PROCEDURE film_in_stock(IN p_film_id INT, IN p_store_id INT, OUT p_film_count INT)READS SQL DATABEGIN SELECT inventory_id FROM inventory WHERE film_id = p_film_id AND store_id = p_store_id AND inventory_in_stock(inventory_id); SELECT FOUND_ROWS() INTO p_film_count;END $$

Các câu lệnh khác

DELIMITER $$Thường được thực hiện Lúc xác minh các hàm, thủ tục với trình kích hoạt (trong các số ấy các bạn bắt buộc thực hiện nhiều câu lệnh). Dấu $$ được sử dụng để xác minh phần đầu của cục bộ thủ tục, bên trong những câu lệnh riêng biệt được ngừng bởi ;. Bằng từ thời điểm cách đó, Lúc mã được chạy vào thiết bị khách hàng mysql, trang bị khách có thể cho biết vị trí toàn cục thủ tục xong và thực thi nó nlỗi một đơn vị chức năng gắng vị thực thi các câu lệnh bơ vơ bên trong.

Xem thêm: Cách Chạy File Dmg Trên Windows, Mở, Xem File Dmg Trên Máy, 3 Cách Giải Nén File *

Lưu ý rằng tự khóa DELIMITER chỉ là 1 tính năng của commvà line mysql client (với một số trang bị khách hàng khác) cùng chưa phải là 1 kết cấu của Squốc lộ thường thì. Nó sẽ không còn hoạt động nếu đưa nó sang 1 API ngôn từ thiết kế cho MySquốc lộ. Một số ứng dụng khách khác ví như PHPMyAdmin bao gồm những thủ tục khác để chỉ định và hướng dẫn dấu phân làn không mặc định.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *