24/05/2018, 21:32

Các cấu trúc

Như đã trình bày ở các bài trước một trong những đặc điểm của SQL Server 2000 là Multiple-Instance nên khi nói đến một (SQL) Server nào đó là ta nói đến một Instance của SQL Server 2000, thông thường đó là Default Instance. Một Instance của ...

Như đã trình bày ở các bài trước một trong những đặc điểm của SQL Server 2000 là Multiple-Instance nên khi nói đến một (SQL) Server nào đó là ta nói đến một Instance của SQL Server 2000, thông thường đó là Default Instance. Một Instance của SQL Server 2000 có 4 system databases và một hay nhiều user database. Các system databases bao gồm:

  • Master : Chứa tất cả những thông tin cấp hệ thống (system-level information) bao gồm thông tin về các database khác trong hệ thống như vị trí của các data files, các login account và các thiết đặt cấu hình hệ thống của SQL Server (system configuration settings).
  • Tempdb : Chứa tất cả những table hay stored procedure được tạm thời tạo ra trong quá trình làm việc bởi user hay do bản thân SQL Server engine. Các table hay stored procedure này sẽ biến mất khi khởi động lại SQL Server hay khi ta disconnect.
  • Model : Database này đóng vai trò như một bảng kẻm (template) cho các database khác. Nghĩa là khi một user database được tạo ra thì SQL Server sẽ copy toàn bộ các system objects (tables, stored procedures...) từ Model database sang database mới vừa tạo.
  • Msdb : Database này được SQL Server Agent sử dụng để hoạch định các báo động và các công việc cần làm (schedule alerts and jobs).

Mỗi một database trong SQL Server đều chứa ít nhất một data file chính (primary), có thể có thêm một hay nhiều data file phụ (Secondary) và một transaction log file.

  • Primary data file (thường có phần mở rộng .mdf) : đây là file chính chứa data và những system tables.
  • Secondary data file (thường có phần mở rộng .ndf) : đây là file phụ thường chỉ sử dụng khi database được phân chia để chứa trên nhiều dĩa.
  • Transaction log file (thường có phần mở rộng .ldf) : đây là file ghi lại tất cả những thay đổi diễn ra trong một database và chứa đầy đủ thông tin để có thể roll back hay roll forward khi cần.

Data trong SQL Server được chứa thành từng Page 8KB và 8 page liên tục tạo thành một Extent như hình vẽ dưới đây:

Trước khi SQL Server muốn lưu data vào một table nó cần phải dành riêng một khoảng trống trong data file cho table đó. Những khoảng trống đó chính là các extents. Có 2 loại Extents: Mixed Extents (loại hỗn hợp) dùng để chứa data của nhiều tables trong cùng một Extent và Uniform Extent (loại thuần nhất) dùng để chứa data của một table. Ðầu tiên SQL Server dành các Page trong Mixed Extent để chứa data cho một table sau đó khi data tăng trưởng thì SQL dành hẳn một Uniform Extent cho table đó.

Hầu như mọi thứ trong SQL Server được tổ chức thành những objects ví dụ như tables, views, stored procedures, indexes, constraints.... Những system objects trong SQL Server thường có bắt đầu bằng chữ sys hay sp. Các objects trên sẽ được nghiên cứu lần lượt trong các bài sau do đó trong phần này chúng ta chỉ bàn sơ qua một số system object thông dụng trong  SQL Server database mà thôi.

Một số Sytem objects thường dùng:

System Stored Procedure Ứng dụng
Sp_help ['object'] Cung cấp thông tin về một database object (table, view...) hay một data type.
Sp_helpdb ['database'] Cung cấp thông tin về một database cụ thể nào đó.
Sp_monitor Cho biết độ bận rộn của SQL Server
Sp_spaceused ['object', 'updateusage' ] Cung cấp thông tin về các khoảng trống đã được sử dụng cho một object nào đó
Sp_who ['login'] Cho biết thông tin về một SQL Server user

Ví dụ:

sp_helpdb 'Northwind' sẽ cho kết quả có dạng như bảng dưới đây 

name             db_size     owner     dbid     created         status .....-------------------------------------------------------------------------------------------------------------------------------- -------Northwind     3.94 MB     sa           6         Aug 6 2000     Status=ONLINE, Updateability=READ_WRITE, .....

stored procedure  sp_spaceused như ví dụ sau

USE Northwind

Go

sp_spaceused 'Customers'

sẽ cho biết thông tin về table Customer:

name             rows     reserved       data        index_size     unused ------------------------------------- ------------------------------------------ Customers     91         104 KB         24 KB      80 KB             0 KB

0