RSSDatabase

Ưu nhược điểm khi dùng stored procedure

Stored procedure được định nghĩa như một tập các khai báo sql được lưu trữ ngay trong cơ sở dữ liệu (database) và sau đó, được triệu gọi bởi một program, một trigger hay thậm chí là một stored procedure khác.

Định nghĩa Stored Procedure

Stored procedure được định nghĩa như một tập các khai báo sql được lưu trữ ngay trong cơ sở dữ liệu (database) và sau đó, được triệu gọi bởi một program, một trigger hay thậm chí là một stored procedure khác.

Một stored procudure, như chính định nghĩa của nó, có tính đệ qui. Hầu hết các RDMBS (Relational database management system – hệ quản trị cơ sở dữ liệu quan hệ) đều hỗ trợ stored procedure đệ qui, tuy nhiên MySql lại không hỗ trợ tốt tính năng này. Vì vậy, chú ý kiểm tra phiên bản của MySql trước khi bạn có ý định dùng stored procedure theo kiểu đệ qui.
Stored Procedure trong MySQL

Hiện tại, MySql là 1 RMBSM mã nguồn mở (open source) được sử dụng rộng rãi trong cộng đồng phát triển cũng như cho mục đích thương mại. Tuy nhiên, từ “thuở sơ khai”, MySql không hỗ trợ stored procedure, trigger hay event…Từ phiên bản 5.0 trở lện, những chức năng này mới được thêm vào MySql data base engine với mục đích đem lại tính linh động và mạnh mẽ hơn cho MySQL.

Những ưu điểm của Stored Procudure

Stored procedure làm tăng khả năng thực thi của ứng dụng. Sau khi được tạo, stored procedure sẽ được biên dịch (compile) và lưu trữ ngay trong database. Lẽ dĩ nhiên, nó sẽ chạy nhanh hơn là một lệnh sql chưa compile được gởi trực tiếp từ ứng dụng.
Stored procedure làm giảm lưu lượng thông tin giao tiếp giữa ứng dụng và database server, thay vì gởi những câu lệnh sql chưa complile dài lằng ngoằn, ứng dụng chỉ việc gởi tên của stored procedure và lấy lại kết quả

Stored procedure có thể được tái sử dụng và chuyển sang bất cứ ứng dụng nào muốn sử dụng chúng. Stored procedure có thể “trưng ra” giao diện database cho tất cả các ứng dụng, vì vậy lập trình viên không cần viết lại các chức năng đã hỗ trợ sẵn trong stored procedure trong tất cả các chương trình.

Stored procedure cũng rất an toàn. Quản trị viên cơ sở dữ liệu có thể gán quyền cho ứng dụng truy xuất vào các stored procedures được chỉ định mà không cho phép truy cập đến các bảng (table) ở phía dưới.

Bên cạch những tiện lợi như trên, stored procedure vẫn có 1 số bất tiện dưới đây:

Những nhược điểm của Stored Procudure

Stored procedure làm cho database server phải tốn nhiều tài nguyên về cả bộ nhớ lẫn xử lý. Thay vì tập trung vào tính năng lưu trữ và nhận dữ liệu, bạn còn phải yêu cầu database server thực hiện 1 loạt các tính toán logic hay các thao tác xử lý phức tạp vốn không thuộc “sở trường” của database server.

Stored procedure chỉ chứa đựng các khai báo sql, vì vậy rất khó có thể viết 1 procedure nhằm thực hiện các thao tác xử lý phức tạp như các ngôn ngữ khác làm được ở tần ứng dụng như C#, Java, C++…

Bạn cũng không thể debug stored procedure trong hầu hết các RDMBS và trong cả MySQL. Có 1 vài cách để khắc phục nhược điểm này, tuy nhiên vẫn chưa hoàn hảo lắm.
Việc viết và bảo trì (maintain) stored procedure thường yêu cầu 1 loạt các kỹ năng chuyên biệt nhiều khi không phải là kỹ năng của lập trình viên. Điều này dẫn đến các vấn đề trong cả khía cạnh phát triển ứng dụng và bảo trì sản phẩm.

Túm lại:

Stored Procedure có những thuận tiện cũng như bất lợi như đã đề cập ở trên. Khi phát triển ứng dụng, bạn nên đánh giá giữa những ưu và nhược điểm để quyết định có nên sử dụng stored procude hay không.

Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!

Nếu là khách, bạn phải đăng ký tài khoản và kích hoạt tài khoản để bình luận được hiển thị ở đây.
Thông tin kích hoạt gửi đến mail của bạn.

Tin mới hơn

Tin cũ hơn

Lên trên đầu