Tải bản đầy đủ (.pdf) (5 trang)

Những thói quen tốt khi viết câu lệnh T-SQL- P1 pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (327.63 KB, 5 trang )

Những thói quen tốt khi viết câu lệnh T-SQL


Hiệu năng ứng dụng phụ thuộc vào rất nhiều yếu tố,
trong đó có một yếu tố rất quan trọng đó là thời gian để
máy chủ SQL xử lý câu lệnh T-SQL.
Đôi khi thiết kế cơ sở dữ liệu và các yêu cầu truy vấn
phức tạp làm cản trở tốc độ thực thi của các câu lệnh
T-SQL. Cách viết code từng câu lệnh T-SQL cũng có
thể khiến máy chủ SQL phải làm việc nhiều hơn để
xử lý truy vấn. Bài viết sau đây sẽ giới thiệu cho bạn
những thói quen tốt nên tập luyện khi viết code T-
SQL. Qua đó bạn có thể hiểu làm thế nào để viết các
câu truy vấn tối ưu, tận dụng tốt tài nguyên máy chủ
SQL và cải thiện hiệu suất.
Ghi rõ tên cột trong câu lệnh SELECT
SELECT * FROM MyTable;
Bạn đã từng viết câu lệnh như trên bao nhiêu lần?
Việc sử dụng dấu sao (*) cho cơ sở dữ liệu biết rằng
bạn muốn trả về tất cả các cột từ bảng (hoặc các
bảng) được khai báo trong mệnh đề FROM. Đây
không phải là một thói quen tốt ngay cả khi bạn
muốn tất cả các cột được trả về ứng dụng. Tốt hơn
bạn nên ghi rõ tên từng cột trong bảng như sau:
SELECT ID, Description,
DateModified FROM MyTable;
Việc khai báo rõ ràng tên các cột trong câu lệnh
SELECT mang lại rất nhiều lợi ích. Thứ nhất, máy
chủ SQL sẽ chỉ trả về dữ liệu cần thiết cho ứng dụng
chứ không phải là một đống dữ liệu mà trong đó có
nhiều thứ ứng dụng của bạn không hề cần đến. Bằng


cách chỉ yêu cầu trả về những dữ liệu cần thiết, bạn
đã góp phần tối ưu hóa khối lượng công việc máy chủ
SQL cần thực hiện để thu thập tất cả các cột của
thông tin bạn yêu cầu. Ngoài ra, nhờ không sử dụng
dấu sao (*) nên bạn đã giảm thiểu lưu lượng truyền
tải qua mạng (số byte) cần thiết để gửi các dữ liệu
liên quan đến câu lệnh SELECT tới ứng dụng.
Trong trường hợp bạn dùng dấu sao (*) và có một ai
đó thêm cột mới vào bảng, ứng dụng của bạn sẽ bắt
đầu tiếp nhận dữ liệu cho cột này mà không thay đổi
mã nguồn ứng dụng. Nếu ứng dụng của bạn chờ đợi
số lượng cột nhất định được trả về, nó sẽ bị lỗi ngay
khi có người bổ sung cột mới vào một trong các bảng
tham chiếu. Bằng việc khai báo rõ ràng tên từng cột
trong câu lệnh SELECT, ứng dụng sẽ luôn nhận được
số lượng cố định các cột trả về, ngay cả khi có người
thêm cột mới vào các bảng tham chiếu trong câu lệnh
SELECT. Nhờ vậy, bạn đã giúp ứng dụng tránh khỏi
những nguy cơ tiềm tàng liên quan đến các thay đổi
cơ sở dữ liệu có thể xảy đến với bất kỳ bảng nào bạn
tham chiếu tới trong câu lệnh SELECT.
Ghi rõ tên cột trong câu lệnh INSERT
Cũng giống như trên, bạn nên chỉ rõ tên từng cột bạn
muốn chèn dữ liệu vào trong câu lệnh INSERT.
Đừng viết câu lệnh INSERT như sau:
INSERT INTO MyTable VALUES
('A','B','C');
Khi bạn viết kiểu này, máy chủ SQL đòi hỏi chỉ đúng
ba cột được định nghĩa trong bảng MyTable, và giá
trị “A” sẽ được chèn vào cột đầu tiên, “B” vào cột

thứ hai, “C” vào cột cuối. Nếu ai đó thêm mới một
cột vào bảng MyTable, ứng dụng của bạn sẽ bị lỗi:
Msg 213, Level 16, State 1, Line 1
Column name or number of supplied
values does not match table
definition.
(Tên cột hoặc số lượng giá trị không khớp với bảng)
Vì thế, thay vì viết câu lệnh INSERT như trên, bạn
nên viết như sau:
INSERT INTO MyTable(So1, So2, So3)
VALUES ('A','B','C');
Bằng cách viết trên, khi ai đó thêm mới một cột tên là
“So4” vào bảng MyTable, câu lệnh INSERT vẫn tiếp

×