Cơ sở dữ liệu ứng dụng SQL Sever 2008 của chúng tôi được sao chép từ Máy chủ A sang Máy chủ B (sao chép đẩy). Chúng tôi sử dụng bản sao, hãy gọi nó là cơ sở dữ liệu_b, trên Máy chủ B để tạo báo cáo và chạy các truy vấn khác để báo cáo của chúng tôi không can thiệp vào ứng dụng. Hiện tại, chúng tôi tận dụng các chế độ xem không hiệu quả để kết hợp dữ liệu trên nhiều bảng trong cơ sở dữ liệu_b để việc viết báo cáo được đơn giản hóa cho người viết báo cáo của chúng tôi (những người có các kỹ năng SQL cơ bản).
99,9% hoạt động của cơ sở dữ liệu là INSERTS, vì vậy chúng tôi đang khám phá một cách để thay thế các khung nhìn không hiệu quả bằng các bảng mà chúng tôi có thể tối ưu hóa. Đây là một ví dụ đơn giản:
Có một appointment
bảng và một bảng location
(tra cứu). Mỗi khi một cuộc hẹn mới được lên lịch, một hàng được thêm vào appointment
bảng. Mỗi lần XÁC NHẬN này xảy ra, tôi muốn lấy nó appointment_id
và chèn nó và tên vị trí tương ứng của nó (nối location_id
từ cả hai bảng) vào một bảng báo cáo.
Tôi đã thực hiện điều này với một kích hoạt trên bảng cuộc hẹn trong cơ sở dữ liệu_b trên Máy chủ B.
Câu hỏi của tôi là - có bất kỳ cân nhắc cụ thể nào được đưa ra rằng cơ sở dữ liệu_b là bản sao được sao chép không? Tôi có cần phải lo lắng về việc một trình kích hoạt thất bại làm hỏng toàn bộ quá trình sao chép (đẩy) không? Bất cứ điều gì khác tôi đang thiếu?
Thật không may, rất khó để kiểm tra điều này trong môi trường phát triển của chúng tôi, vì vậy tôi không có cơ hội cho nhiều thử nghiệm và sai sót.