Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Một số điểm cần lưu ý giúp tối ưu hóa khi CREATE TABLE

Bài cuối 04-02-2013 11:03 AM của minhkt. 0 trả lời.
Trang 1 trong số 1 (1 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 04-02-2013 11:03 AM

    • minhkt
    • 10 thành viên năng nổ nhất
      Nam
    • Tham gia 12-05-2008
    • Điểm 8,075

    Một số điểm cần lưu ý giúp tối ưu hóa khi CREATE TABLE

    Một số điểm cần lưu ý giúp tối ưu hóa khi CREATE TABLE
     
    1. Chuẩn hóa các bảng dữ liệu về dạng chuẩn 3.
      Một bảng dữ liệu thuộc dạng chuẩn 3 (3NF) nếu nó thuộc dạng chuẩn 2 (2NF) và nó không chứa các phụ thuộc bắc cầu. Trong hầu hết trường hợp, bạn nên chuẩn hóa các bảng dữ liệu của bạn về dạng chuẩn 3. Chuẩn hóa nhằm giảm lượng dữ liệu dư thừa trong cơ sở dữ liệu, đồng nghĩa với lượng dữ liệu ít hơn, hệ thống sẽ xử lý nhanh hơn.

    2. Xem xét có nên để các table ở dạng chuẩn thứ 4 hoặc thứ 5 hay không.
      Dạng chuẩn thứ 4 và thứ 5 có thể làm cho hiệu suất hoạt động của hệ thống bị giảm đi, đặc biệt là khi bạn cần phải join nhiều bảng lại để cho ra kết quả truy vấn.

    3. Xem xét khả năng phân tán dữ liệu theo chiều ngang cho các bảng dữ liệu rất lớn.
      Dung lượng ít hơn, bảng nhỏ hơn đồng nghĩa với việc SQL Server sẽ phải làm việc ít hơn để xử lý query của bạn. Ví dụ nếu hằng ngày bạn cần xem báo cáo số liệu phát sinh năm này, trong khi mỗi tháng bạn chỉ cần xem báo cáo tất cả phát sinh một lần, thì nên nghĩ đến khả năng tạo ra 2 bảng để lưu trữ phát sinh, 1 cho năm này và 1 cho các năm trước.

    4. Tạo các column có dung lượng lưu trữ các ít càng tốt
      Điều này có thể giảm dung lượng lưu trữ của bảng và giúp tăng tốc các query cũng như các tác vụ khác.

    5. Cố gắng giảm thiểu số lượng column.
      Số cột ít hơn cũng đồng nghĩa với dung lượng lưu trữ ít hơn, giảm thiểu lượng dữ liệu ra vào cho server khi cần xử lý truy vấn.

    6. Nếu được thì có thể sử dụng constraints thay vì triggers, rules, hay defaults
      Constraints cho hiệu quả sử dụng cao hơn triggers và có thể giúp tăng hiệu suất hệ thống. Constraints đáng tin cậy hơn so triggers, rules hay defaults, vì code của bạn có thể gây ra lỗi cho hệ thống khi bạn tự viết code để thực hiện cùng tính năng như constraints.

    7. Sử dụng kiểu dữ liệu hợp lý
      • Cột có kiểu dữ liệu tinyint chỉ cần 1 byte để lưu trữ giá trị, trong khi các kiểu smallint, int và bigint thì cần đến 2, 4 và 8 byte để lưu trữ. Nếu cần lưu trữ số nguyên có giá trị từ 0-255, hãy sử dụng tinyint.
      • Tương tự, kiểu smallint cho các cột có giá trị từ -32,768 đến 32,768.
      • Kiểu int cho các cột có giá trị từ -2,147,483,648 đến 2,147,483,647
      • Sử dụng kiểu smallmoney thay cho money nếu cần lưu trữ kiểu tiền tệ có giá trị từ -214,748.3648 through 214,748.3647. Smallmoney chỉ cần 4 byte để lưu trữ, trong khi đối với money là 8 byte.
      • Sử dụng kiểu smalldatetime thay vì datetime, nếu cần lưu trữ dữ liệu ngày tháng có giá trị trong khoảng 01/01/1900 đến 06/06/2079, với thời gian được lưu đến đơn vị phút. Kiểu smalldatetime sử dụng 4 byte để lưu trữ thay vì 8 byte để lưu trữ dữ liệu có kiểu datetime.
      • Sử dụng kiểu dữ liệu varchar/ nvarchar thay cho text/ ntext nếu có thể. Vì kiểu dữ liệu text/ntext được SQL Server lưu trữ riêng biệt so với kiểu data thông thường, do đó nó có thể mất nhiều thời gian hơn để truy xuất các giá trị có kiểu text/ntext.
      • Sử dụng kiểu char/varchar thay vì nchar/nvarchar nếu không cần lưu trữ dữ liệu unicode. Mỗi ký tự kiểu char/varchar chỉ cần 1 byte để lưu trữ, trong khi đối với nchar/nvarchar là 2 byte. Sử dụng kiểu char/varchar sẽ giúp giảm đi một nửa dung lượng bạn cần để lưu trữ.

     

    Từ khóa đại diện: ,
    • Điểm chủ đề: 20
Trang 1 trong số 1 (1 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems