Hành trình đếm sao – 1. Hệ quản trị cơ sở dữ liệu SQL Server

Hành trình đếm sao – 1. Hệ quản trị cơ sở dữ liệu SQL Server


Lưu ý: Bài viết này được đăng lại từ kho lưu trữ cũ nên một số hình ảnh minh họa đã bị mất. Xin lỗi bạn đọc vì sự bất tiện này.

Dữ liệu, hiểu một cách đơn giản nhất, là các sự kiện xoay quanh một đối tượng. Đó có thể là tên tuổi, địa chỉ email, mật khẩu hay thời điểm đăng nhập cuối cùng của một tài khoản người dùng trên website. Một bức ảnh, một đoạn âm thanh hay một tập tin cũng chính là dữ liệu.


Để tổ chức và lưu trữ khối lượng dữ liệu khổng lồ, chúng ta có Cơ sở dữ liệu (Database) với nhiều mô hình khác nhau như phân cấp (hierarchical), mạng (network), hướng đối tượng (object-oriented) và phổ biến nhất là cơ sở dữ liệu quan hệ (relational database).


Cơ sở dữ liệu quan hệ lưu trữ dữ liệu dưới dạng các bảng. Điểm cốt lõi là các bảng này không đứng độc lập mà có mối quan hệ (relationship) mật thiết với nhau, được thể hiện qua việc khóa ngoại (foreign key) của bảng này tham chiếu đến khóa chính (primary key) của bảng kia. Nhờ cơ chế này, dù dữ liệu được chia nhỏ và phân tán trên nhiều bảng, chúng ta vẫn có thể liên kết và trích xuất thông tin một cách toàn vẹn.


Để thao tác với mô hình này, chúng ta cần đến Hệ quản trị cơ sở dữ liệu (RDBMS - Relational Database Management System). Đây là phần mềm nền tảng cung cấp bộ công cụ toàn diện giúp quản trị viên lưu trữ, cập nhật, xử lý và phân tích dữ liệu. Hơn thế nữa, RDBMS còn đóng vai trò là "người gác đền", bảo vệ tính bảo mật, duy trì sự nhất quán và toàn vẹn của dữ liệu trong mọi tình huống. Các hệ quản trị cơ sở dữ liệu quan hệ đình đám nhất hiện nay (luôn nằm top đầu trên bảng xếp hạng db-engines.com) có thể kể đến Microsoft SQL Server, Oracle, MySQL và PostgreSQL.

Bảng xếp hạng DB-Engines tháng 10 2026


Nói riêng về SQL Server, đây là "đứa con cưng" được Microsoft phát triển từ năm 1989 (phiên bản 1.0) và liên tục tiến hóa với các phiên bản mạnh mẽ như 2019, 2022 cùng hệ sinh thái Microsoft Azure SQL Database trên nền tảng cloud. SQL Server cung cấp đa dạng các ấn bản từ Enterprise, Standard, Web đến Developer, Express. Để thao tác mượt mà với engine này, Microsoft trang bị công cụ SSMS (SQL Server Management Studio) – "vũ khí" đắc lực giúp người dùng truy cập, cấu hình và quản trị mọi ngóc ngách của hệ thống.


Ngôn ngữ giao tiếp tiêu chuẩn với các RDBMS chính là SQL (Structured Query Language), dùng để truy vấn, chèn, cập nhật, xóa dữ liệu cũng như thực thi các tác vụ bảo trì. Riêng với hệ sinh thái của Microsoft, chúng ta sử dụng T-SQL (Transact-SQL). Đây là phần mở rộng độc quyền của SQL chuẩn, được trang bị thêm hàng loạt tính năng lập trình mạnh mẽ (xử lý chuỗi, ngày tháng, vòng lặp, error handling) giúp việc viết truy vấn và xây dựng các thủ tục lưu trữ (Stored Procedures) trở nên linh hoạt và tối ưu hơn rất nhiều.


Vậy Quản trị cơ sở dữ liệu (Database Administration) thực chất là làm gì? Đó là chuỗi các hoạt động không ngừng nghỉ nhằm đảm bảo hệ thống luôn vận hành ở trạng thái hoàn hảo nhất: dữ liệu ghi nhận tức thì, kết quả truy vấn trả về chớp nhoáng và chính xác tuyệt đối. Nhiệm vụ của một DBA không chỉ dừng lại ở việc bảo mật hay sao lưu, mà còn là người trực tiếp "bắt mạch" hệ thống, xử lý điểm nghẽn và hoạch định kiến trúc để sẵn sàng cho sự phình to của dữ liệu trong tương lai.


Để hiểu rõ hơn về chiều sâu của công việc này, mình muốn giới thiệu đến các bạn series "Hành trình đếm sao".


Trong loạt bài viết này, chúng ta sẽ mượn một câu lệnh tưởng chừng như đơn giản nhất – SELECT COUNT(*) – để mổ xẻ xem trước, trong và sau khi SQL Server thực thi một câu truy vấn, điều gì thực sự diễn ra bên dưới engine. Dưới góc nhìn của một người làm tối ưu hiệu năng (performance tuning), chúng ta sẽ cùng bóc tách xem chi phí thực thi (cost) của truy vấn này là bao nhiêu, logical reads và CPU duration biến động thế nào, như vậy đã tối ưu chưa và cần can thiệp vào index hay cấu hình ra sao để ép hệ thống chạy nhanh hơn nữa. Việc thấu hiểu "tảng băng chìm" này chính là chìa khóa để đưa ra những quyết định thiết kế và tuning chuẩn xác, giữ cho cơ sở dữ liệu luôn bền bỉ và tốc độ.