Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ưu và nhược điểm của việc giữ SQL trong Procs được lưu trữ so với Code là gì

Tôi không phải là người yêu thích các thủ tục được lưu trữ

Các thủ tục được lưu trữ dễ bảo trì hơn vì:* Bạn không phải biên dịch lại ứng dụng C # của mình bất cứ khi nào bạn muốn thay đổi một số SQL

Cuối cùng bạn vẫn sẽ biên dịch lại nó khi kiểu dữ liệu thay đổi hoặc bạn muốn trả về một cột bổ sung hoặc bất cứ điều gì. Nhìn chung, số lần bạn có thể 'minh bạch' thay đổi SQL từ bên dưới ứng dụng của mình là khá nhỏ

  • Cuối cùng, bạn sẽ sử dụng lại mã SQL.

Các ngôn ngữ lập trình, bao gồm C #, có điều tuyệt vời này, được gọi là một hàm. Nó có nghĩa là bạn có thể gọi cùng một khối mã từ nhiều nơi! Kinh ngạc! Sau đó, bạn có thể đặt mã SQL có thể sử dụng lại bên trong một trong những mã này hoặc nếu bạn muốn có được công nghệ thực sự cao, bạn có thể sử dụng một thư viện làm điều đó cho bạn. Tôi tin rằng chúng được gọi là Người lập bản đồ quan hệ đối tượng và ngày nay khá phổ biến.

Việc lặp lại mã là điều tồi tệ nhất bạn có thể làm khi cố gắng xây dựng một ứng dụng có thể bảo trì!

Đồng ý, đó là lý do tại sao tài liệu lưu trữ là một điều tồi tệ. Việc cấu trúc lại và phân rã (chia thành các phần nhỏ hơn) mã thành các hàm dễ dàng hơn nhiều so với SQL thành ... khối SQL?

Bạn có 4 máy chủ web và một loạt các ứng dụng windows sử dụng cùng một mã SQL. máy chủ web, cài đặt lại tất cả các ứng dụng dành cho máy tính để bàn (clickonce có thể hữu ích) trên tất cả các hộp cửa sổ

Tại sao các ứng dụng windows của bạn lại kết nối trực tiếp với cơ sở dữ liệu trung tâm? Đó có vẻ như là một lỗ hổng bảo mật LỚN ngay tại đó và tắc nghẽn khi nó loại trừ bộ nhớ đệm phía máy chủ. Họ không nên kết nối qua dịch vụ web hoặc tương tự với máy chủ web của bạn?

Vì vậy, đẩy 1 máy chủ mới hay 4 máy chủ web mới?

Trong trường hợp này, nó dễ dàng hơn để đẩy một mầm mới, nhưng theo kinh nghiệm của tôi, 95% 'thay đổi được đẩy' ảnh hưởng đến mã chứ không phải cơ sở dữ liệu. Nếu bạn đang đẩy 20 thứ lên máy chủ web trong tháng đó và 1 thứ vào cơ sở dữ liệu, thì bạn hầu như không mất nhiều nếu thay vào đó bạn đẩy 21 thứ lên máy chủ web và 0 thứ vào cơ sở dữ liệu.

Mã dễ dàng được xem xét hơn.

Bạn có thể giải thích như thế nào? Tôi không hiểu điều này. Đặc biệt có thể thấy rằng mầm có thể không được kiểm soát nguồn và do đó không thể truy cập được qua trình duyệt SCM dựa trên web, v.v.

Thêm khuyết điểm:

Các tài liệu lưu trữ nằm trong cơ sở dữ liệu, xuất hiện với thế giới bên ngoài như một hộp đen. Những việc đơn giản như muốn đưa chúng vào quyền kiểm soát nguồn sẽ trở thành một cơn ác mộng.

Ngoài ra còn có vấn đề về nỗ lực tuyệt đối. Sẽ rất hợp lý nếu bạn chia nhỏ mọi thứ thành một triệu cấp nếu bạn đang cố gắng giải thích với CEO của mình rằng tại sao họ chỉ tốn 7 triệu đô la để xây dựng một số diễn đàn, nhưng nếu không thì việc tạo ra một kho lưu trữ cho mọi thứ nhỏ nhặt chỉ là một trò lừa bịp bổ sung cho không. lợi ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sao chép bảng từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong SQL Server

  2. Làm thế nào để thực thi tệp .sql bằng quyền hạn?

  3. Cách xóa công việc tác nhân máy chủ SQL trong Azure Data Studio

  4. Câu lệnh ALTER TABLE xung đột với ràng buộc CHECK trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 89

  5. Làm cách nào để kiểm tra xem IDENTITY_INSERT được đặt thành BẬT hay TẮT trong SQL Server?