(hay Autoshrink) gặp vấn đề sau: Performance hit: Ảnh hưởng đáng kể đến khả làm việc SQL Server Do phải thường xuyên kiểm tra xem có đủ khoảng trống cần thiết hay không không đủ phải mở rộng cách dành thêm khoảng trống từ dĩa cứng trình làm chậm hoạt động SQL Server Disk fragmentation : Việc mở rộng làm cho data không liên tục mà chứa nhiều nơi khác dĩa cứng điều gây ảnh hưởng lên tốc độ làm việc SQL Server Trong hệ thống lớn người ta dự đoán trước kích thước database cách tính toán kích thước tables, kích thước ước đoán mà (xin xem "Estimating the size of a database" SQL Books Online để biết thêm cách tính) sau thường xuyên dùng số câu lệnh SQL (thường dùng câu lệnh bắt đầu DBCC Phần bàn qua sau) kiểm tra xem có đủ khoảng trống hay không không đủ ta chọn thời điểm mà SQL server bận rộn (như ban đêm hay sau làm việc) để nới rộng data file không làm ảnh hưởng tới performance Server Chú ý giả sử ta dành sẵn GB cho datafile, dùng Window Explorer để xem ta thấy kích thước file GB data thực tế chiếm vài chục MB mà Những Ðiểm Cần Lưu Ý Khi Thiết Kế Một Database Trong phạm vi nói sâu lý thuyết thiết kế database mà đưa vài lời khuyên mà bạn nên tuân theo thiết kế Trước hết bạn phải nắm vững loại data type Ví dụ bạn phải biết rõ khác biệt char(10), nchar(10) varchar(10), nvarchar(10) Loại liệu Char loại string có kích thước cố định nghĩa ví dụ data đưa vào "This is a really long character string" (lớn 10 ký tự) SQL Server tự động cắt phần đuôi ta "This is a" Tương tự string đưa vào nhỏ 10 SQL thêm khoảng trống vào phía sau cho đủ 10 ký tự Ngược lại loại varchar không thêm khoảng trống phía sau string đưa vào 10 Còn loại data bắt đầu chữ n chứa liệu dạng unicode Một lưu ý khác SQL Server ta có loại Integer : tinyint, smallint, int, bigint Trong kích thước loại tương ứng 1,2,4,8 bytes Nghĩa loại smallint tương đương với Integer loại int tương đương với Long VB Khi thiết kế table nên: Có cột thuộc loại ID dùng để xác định record dễ dàng Chỉ chứa data entity (một thực thể) Trong ví dụ sau thông tin Sách Nhà Xuất Bản chứa table Books BookI D Title Publisher PubStat PubCit PubCountr e y y CA Berkely USA MA Boston USA CA Berkely USA Inside SQL Microsof Server t Press 2000 Windows 2000 Server New Riders Beginnin g Visual Wrox Basic 6.0 Ta nên tách thành table Books table Publisher sau: Books BookID Title PublisherID P1 Inside SQL Server 2000 Windows 2000 Server P2 Beginning Visual P3 Basic 6.0 Publishers PublisherID Publisher PubState PubCity PubCountry P1 P2 P3 Microsoft Press New Riders Wrox CA Berkely USA MA Boston USA CA Berkely USA Tránh dùng cột có chứa NULL nên có giá trị Default cho cột Tránh lập lại giá trị hay cột ... GB data thực tế chiếm vài chục MB mà Những Ðiểm Cần Lưu Ý Khi Thiết Kế Một Database Trong phạm vi nói sâu lý thuyết thiết kế database mà đưa vài lời khuyên mà bạn nên tuân theo thiết kế Trước... đưa vào nhỏ 10 SQL thêm khoảng trống vào phía sau cho đủ 10 ký tự Ngược lại loại varchar không thêm khoảng trống phía sau string đưa vào 10 Còn loại data bắt đầu chữ n chứa liệu dạng unicode Một. .. nchar(10) varchar(10), nvarchar(10) Loại liệu Char loại string có kích thước cố định nghĩa ví dụ data đưa vào "This is a really long character string" (lớn 10 ký tự) SQL Server tự động cắt phần đuôi