ĐĂNG KÝ ĐỂ NHẬN THÔNG TIN MỚI NHẤT

Tối ưu SQL nên bắt đầu từ đâu?

Muốn tối ưu SQL, các bạn nên bắt đầu từ đâu? Dưới đây là một con đường tôi đã giúp nhiều anh em thành công, các bạn cũng có thể trải nghiệm.

1. Thứ nhất, hiểu về bản chất hoạt động của SQL

Khi nói về tối ưu SQL, mọi người thường nghĩ tới việc “thời gian thực thi nhanh hơn”, hay nói cách khác, từ lúc chúng ta ấn ENTER với câu lệnh SQL, thời gian trả ra kết quả phải nhanh chóng.

Khi tham gia cuộc chơi về “thời gian” như vậy, chúng ta buộc phải hiểu rõ cách thức mà một hệ thống xử lý khi ta gửi câu lệnh SQL tới, có như vậy thì ta mới có thể tối ưu những câu lệnh từ vài chuc phút xuống còn vài giây, vài trăm ms.

Ví du: Đây là những thứ cơ sở dữ liệu Oracle thực hiện để xử lý một câu lệnh SQL.

Có 6 bước chính sẽ cần thực hiện

  • Kiểm tra xem câu lệnh có đúng cú pháp chưa
  • Kiểm tra câu lệnh có đúng ngữ nghĩa chưa
  • Kiểm tra xem câu lệnh đó đã từng thực hiện hay chưa
    • Nếu chưa, thực hiện tiếp 2 bước màu đỏ (phân tích và xây dựng chiến lược thực thi của câu lệnh SQL)
    • Nếu có rồi, lấy chiến lược thực thi và thực hiện.
  • Bước tô màu đỏ tiêu tốn tài nguyên và có thể gây ra những hiệu quả nghiêm trọng nếu chúng liên tục phải phân tích lại (tôi đã từng có một ví dụ kinh điển về phần này. Bạn có thể xem bài viết đó bằng cách CLICK VÀO ĐÂY)

6 bước thực thi 1 câu lệnh - phải biết khi tối ưu cơ sở dữ liệu

Tại bước màu xanh: Thực thi câu lệnh: đây chính là bước mà hệ thống phải truy cập vào các bảng, Index, thực hiện các giải thuật Join… để lấy được kết quả như mong muốn.

Và khi tực hiện những bước đó, nó lại phát sinh một vấn đề: HỆ THỐNG CÒN CÓ THỂ PHẢI ĐỢI (WAIT), chứ không phải yêu cầu nào cũng được thực hiện một cách tức thì.

Vậy để thời gian thực hiện một câu lệnh nhanh nhất có thể thì bản chất chúng ta phải tối ưu thời gian của tất cả các bước trên, giảm tối thiểu những bước tiêu tốn tài nguyên không cần thiết, giảm tối đa các Wait khi câu lệnh thực thi theo chiến lược đã có.

2. Thứ hai: phải biết đọc và phân tích chiến lược thực thi – SQL Execution Plans

SQL Execution Plans chính là tấm bản đồ chỉ dẫn cho hệ thống cách lấy “kết quả” từ một đống dữ liệu trong những data file.

Nếu SQL Execution Plans quyết định 80% yếu tố nhanh/ chậm của câu lệnh.

Tôi đã viết rất nhiều bài về nội dung này vì nó cực kỳ quan trọng, rất nhiều anh em DEV biết về SQL nhưng không thể tự đánh giá được một câu lệnh là tồi hay không, vì chưa nắm SQL Execution Plans.

Mục tiêu của việc đọc SQL Execution Plans: bạn khoanh vùng được các “Object”, các “Đoạn lệnh nhỏ hơn” cần thực hiện tối ưu.

Một số bài viết bạn nên đọc thêm tại mục này:

3. Luyện tập các kỹ thuật tối ưu SQL được áp dụng trong những dự án thực tế.

Giải pháp để tối ưu, bạn có thể kiểm tra trong những kỹ thuật tối ưu (bao gồm tối ưu thiết kế và tối ưu sql):

4. Làm thế nào đánh giá, tối ưu cả một hệ thống, với rất nhiều người dùng và cực kỳ nhiều câu lệnh SQL?

Sau khi bạn biết cách tối ưu SQL riêng biệt, bạn sẽ muốn thử sức bằng những “yêu cầu có độ khó hơn”.

Lúc này bạn có thể áp dụng check list các sai lầm trong thiết kế tối ưu. Tại đây bạn sẽ biết được toàn bộ những sai lầm trong những dự án Core banking, Core chứng khoán, ERP… mà tôi đã trực tiếp tối ưu và hỗ trợ anh em DEV tại các đơn vị lớn đó

sai lầm trong tối ưu sql

 

5. Nếu bạn muốn tôi đồng hành trong toàn bộ chặng đường trên?

Tìm hiểu chương trình tối ưu cơ sở dữ liệu cao cấp của Wecommit tại đây: https://wecommit.com.vn/chuong-trinh-dao-tao-toi-uu-co-so-du-lieu-wecommit/

 

6. Thông tin tác giả

Tác giả: Trần Quốc Huy – Founder & CEO Wecommit

Facebook: https://www.facebook.com/tran.q.huy.71

Email: huy.tranquoc@wecommit.com.vn

Youtube: Trần Quốc Huy

Số điện thoại: 0888549190

Views: 1512





    Câu hỏi bảo mật

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *