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

Tạo kích hoạt kiểm tra trong SQL Server

Tôi chỉ muốn nêu ra một số điểm:

Sử dụng trình tạo mã Bạn không thể có một quy trình duy nhất để theo dõi tất cả các bảng, bạn sẽ cần tạo các trình kích hoạt tương tự nhưng riêng biệt trên mỗi bảng được theo dõi. Loại công việc này phù hợp nhất cho việc tạo mã tự động. Ở vị trí của bạn, tôi sẽ sử dụng phép chuyển đổi XSLT để tạo mã từ XML và XML có thể được tạo tự động từ siêu dữ liệu. Điều này cho phép bạn dễ dàng duy trì các trình kích hoạt bằng cách tạo lại chúng mỗi khi bạn thực hiện thay đổi đối với cấu trúc / logic kiểm tra hoặc bảng mục tiêu được thêm vào / thay đổi.

Xem xét lập kế hoạch năng lực cho cuộc kiểm toán. Cho đến nay, một bảng kiểm tra theo dõi tất cả các thay đổi giá trị sẽ là bảng lớn nhất trong cơ sở dữ liệu:nó sẽ chứa tất cả dữ liệu hiện tại và tất cả lịch sử của dữ liệu hiện tại. Một bảng như vậy sẽ tăng kích thước cơ sở dữ liệu lên 2-3 bậc độ lớn (x10, x100). Và bảng kiểm toán sẽ nhanh chóng trở thành nút thắt cổ chai của mọi thứ:

  • mọi hoạt động DML sẽ yêu cầu khóa trong bảng kiểm tra
  • tất cả các hoạt động quản trị và bảo trì sẽ phải phù hợp với kích thước của cơ sở dữ liệu do quá trình kiểm tra

Tính đến các thay đổi giản đồ . Một bảng có tên 'Foo' có thể bị xóa và sau đó, một bảng khác có tên 'Foo' có thể được tạo. Dấu vết kiểm tra phải có khả năng phân biệt hai đối tượng khác nhau. Tốt hơn hãy sử dụng phương pháp tiếp cận thứ nguyên thay đổi chậm.

Cân nhắc sự cần thiết phải xóa hiệu quả hồ sơ kiểm toán. Khi thời hạn lưu giữ được quy định bởi chính sách đối tượng ứng dụng của bạn đến hạn, bạn cần có thể xóa hồ sơ kiểm tra đúng hạn. Nó có vẻ không phải là một vấn đề lớn bây giờ, nhưng 5 năm sau khi các bản ghi đầu tiên đến hạn, bảng kiểm toán đã tăng lên 9,5TB thì đó có thể là một vấn đề.

Xem xét sự cần thiết phải truy vấn kiểm tra . Cấu trúc bảng đánh giá phải được chuẩn bị để đáp ứng hiệu quả các truy vấn về đánh giá. Nếu kiểm toán của bạn không thể được truy vấn thì nó không có giá trị. Các truy vấn sẽ hoàn toàn do yêu cầu của bạn thúc đẩy và chỉ bạn biết những điều đó, nhưng hầu hết các bản ghi kiểm tra được truy vấn theo khoảng thời gian ('những thay đổi nào đã xảy ra từ 7 giờ tối đến 8 giờ tối hôm qua?'), Theo đối tượng ('những thay đổi nào đã xảy ra với bản ghi này trong này bảng? ') hoặc theo tác giả (' Bob đã thay đổi gì trong cơ sở dữ liệu? ').



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thực thi sp_msforeachdb trong ứng dụng Java

  2. Làm cách nào để tìm một thủ tục được lưu trữ có chứa <text>?

  3. Chuẩn bị một máy ảo mới cho SQL Server 2014 CTP1

  4. Bí danh tham chiếu (được tính bằng SELECT) trong mệnh đề WHERE

  5. Cách hiển thị truy vấn và kết quả trong tab riêng biệt trong SQL Server Management Studio (SSMS) - Hướng dẫn sử dụng SQL Server / TSQL Phần 15