Khám Phá Kiến Trúc của SQL Server
MS SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phát triển bởi Microsoft. SQL Server hoạt động dựa trên kiến trúc client-server, trong đó client gửi yêu cầu đến SQL Server, SQL Server tiếp nhận, xử lý và trả về dữ liệu đã được xử lý về client.
Các Thành Phần Chính của Kiến Trúc SQL Server
1. Protocol Layer – SNI (SQL Server Network Interface)
Lớp giao thức này quản lý và điều phối cách thức mà client và server giao tiếp với nhau. Một số chức năng chính bao gồm:
- Tiếp nhận yêu cầu từ client
- Quản lý kết nối
- Tối ưu hóa truyền dữ liệu
- Hỗ trợ các giao thức khác nhau.
SQL Server hỗ trợ ba loại giao thức kết nối:
- Shared Memory: Khi client và SQL Server chạy trên cùng một máy.
- TCP/IP: Khi client và SQL Server tương tác qua mạng LAN, WAN hoặc Internet.
- Named Pipes: Khi client và SQL Server giao tiếp qua mạng cục bộ.
Giao thức TDS (Tabular Data Stream) được sử dụng để mã hóa các truy vấn SQL cũng như kết quả trả về.
2. Relational Engine (Bộ Xử Lý Truy Vấn)
Thành phần này xác định các bước cần thực hiện để xử lý truy vấn một cách hiệu quả nhất. Nó bao gồm các phần chính:
- CMD Parser: Kiểm tra cú pháp và ngữ nghĩa của truy vấn.
- Optimizer: Tối ưu hóa truy vấn để tạo ra chiến lược thực thi tiết kiệm tài nguyên.
- Query Executor: Thực thi kế hoạch và lấy kết quả từ Storage Engine.
3. Storage Engine
Storage Engine có nhiệm vụ lưu trữ và truy xuất dữ liệu từ các hệ thống lưu trữ như đĩa cứng hoặc SAN. Dữ liệu được lưu trữ dưới dạng các data page 8KB, được nhóm thành extents.
Các Loại File Dữ Liệu
- Primary File (.mdf): Chứa thông tin quan trọng liên quan đến bảng, view, trigger, v.v.
- Secondary File (.ndf): Lưu trữ dữ liệu người dùng.
- Log File (.ldf): Ghi lại thông tin về các giao dịch và thay đổi dữ liệu để đảm bảo phục hồi.
4. Access Method
Xác định loại truy vấn là SELECT hay NON-SELECT và chuyển tiếp chúng đến Buffer Manager hoặc Transaction Manager.
5. Buffer Manager
Quản lý bộ nhớ cache cho các module khác và thực hiện các thao tác tối ưu hóa:
- Plan Cache: Lưu trữ execution plans.
- Buffer Cache: Kiểm tra và truy xuất dữ liệu từ bộ nhớ đệm hoặc lưu trữ.
- Dirty Page: Quản lý các data pages đã thay đổi nhưng chưa ghi lại.
6. Transaction Manager
Quản lý các giao dịch và đảm bảo tính nhất quán dữ liệu:
- Quản lý giao dịch không phải SELECT: INSERT, UPDATE, DELETE.
- Sử dụng Log Manager để ghi lại thay đổi.
- Sử dụng Lock Manager để đảm bảo không có sự can thiệp giữa các giao dịch.
Quy Trình Thực Thi Truy Vấn
- Nhận truy vấn: Protocol Layer nhận truy vấn từ ứng dụng.
- Phân tích truy vấn: CMD Parser kiểm tra cú pháp.
- Tối ưu hóa truy vấn: Optimizer tìm kiếm kế hoạch thực thi tốt nhất.
- Lưu trữ kế hoạch: Buffer Manager kiểm tra và lưu trữ kế hoạch thực thi.
- Truy xuất dữ liệu: Query Executor tiến hành truy vấn dữ liệu.
- Cập nhật dữ liệu và ghi vào đĩa: Các thay đổi được ghi vào log và thực hiện các thao tác ghi.
- Trả kết quả: Kết quả được gửi đến client qua Protocol Layer.
Các Thành Phần Của Kiến Trúc SQL Server
- Database Engine: Chịu trách nhiệm lưu trữ và xử lý nhanh chóng các giao dịch.
- SQL Server: Dịch vụ khởi động và quản lý phiên bản SQL Server.
- SQL Server Agent: Trình lập lịch tác vụ.
- SQL Server Browser: Kết nối đến phiên bản SQL Server.
- SQL Server Full-Text Search: Hỗ trợ tìm kiếm toàn văn.
- SQL Server VSS Writer: Hỗ trợ sao lưu và khôi phục tệp.
- SQL Server Analysis Services (SSAS): Dịch vụ phân tích dữ liệu.
- SQL Server Reporting Services (SSRS): Cung cấp tính năng báo cáo.
- SQL Server Integration Services (SSIS): Chuyển đổi và tích hợp dữ liệu.
Việc hiểu rõ kiến trúc của SQL Server là cần thiết để quản lý và tối ưu hóa hiệu suất của các cơ sở dữ liệu, đồng thời bảo đảm tính ổn định và bảo mật cho dữ liệu.
source: viblo