Một số câu trả lời khác cho câu hỏi của bạn:
1) Bạn đang có khá nhiều mục tiêu đối với một người lần đầu tiên tiếp cận một vấn đề như thế này. Tôi nghĩ rằng những gợi ý từ những người khác về câu hỏi này cho đến nay đã bao trùm khá nhiều. Làm tốt lắm!
2 &3) Hiệu suất mà bạn đạt được sẽ phụ thuộc phần lớn vào việc có và tối ưu hóa các chỉ mục phù hợp cho các truy vấn / thủ tục cụ thể của bạn và quan trọng hơn là khối lượng bản ghi. Trừ khi bạn đang nói về hơn một triệu bản ghi trong các bảng chính của mình, bạn dường như đang đi đúng hướng để có một thiết kế đủ chủ đạo mà hiệu suất sẽ không phải là vấn đề trên phần cứng hợp lý.
Điều đó nói rằng, và điều này liên quan đến câu hỏi 3 của bạn, với sự khởi đầu của bạn, có lẽ bạn không nên thực sự lo lắng quá mức về hiệu suất hoặc siêu nhạy cảm với chuẩn hóa chính thống ở đây. Đây là một máy chủ báo cáo mà bạn đang xây dựng, không phải là một chương trình phụ trợ ứng dụng dựa trên giao dịch, sẽ có một cấu hình khác nhiều về tầm quan trọng của hiệu suất hoặc bình thường. Cơ sở dữ liệu hỗ trợ ứng dụng lập lịch và đăng ký trực tiếp phải lưu ý đến các truy vấn mất vài giây để trả về dữ liệu. Chức năng máy chủ báo cáo không chỉ có khả năng chịu đựng tốt hơn đối với các truy vấn phức tạp và dài dòng, mà các chiến lược để cải thiện hiệu suất cũng khác nhiều.
Ví dụ:trong môi trường ứng dụng dựa trên giao dịch, các tùy chọn cải thiện hiệu suất của bạn có thể bao gồm việc cấu trúc lại các thủ tục và cấu trúc bảng được lưu trữ của bạn ở cấp độ thứ n hoặc phát triển chiến lược lưu vào bộ nhớ đệm cho một lượng nhỏ dữ liệu thường được yêu cầu. Trong môi trường báo cáo, bạn chắc chắn có thể làm điều này nhưng bạn có thể có tác động lớn hơn đến hiệu suất bằng cách giới thiệu cơ chế ảnh chụp nhanh trong đó quy trình được lập lịch chạy và lưu trữ các báo cáo được định cấu hình trước và người dùng của bạn truy cập vào dữ liệu ảnh chụp nhanh mà không cần áp dụng cấp db của bạn một cơ sở cho mỗi yêu cầu.
Tất cả những điều này là một lời nói dài dòng để minh họa rằng những nguyên tắc và thủ thuật thiết kế bạn sử dụng có thể khác nhau tùy theo vai trò của db mà bạn đang tạo. Tôi hy vọng điều đó hữu ích.