Bản nháp nội bộ. Giá, gói, chính sách hoàn tiền đang chờ anh Huy chốt. Nút đăng ký tạm trỏ về Zalo vì chưa có thanh toán tự động.
WTrần Quốc Huy · Wecommit

Cùng một câu lệnh, hôm nay nhanh, tháng sau chậm. Anh em có biết vì sao không?

Kho tra cứu tối ưu cơ sở dữ liệu, đúc từ 15 năm làm hệ thống lõi ngân hàng, chứng khoán, bệnh viện. Hệ thống gặp vấn đề gì thì mở đúng bài đó ra xem. Kèm bộ công cụ AI kiểm tra sức khoẻ Oracle, để biết hệ thống mình đang lỗi ở đâu.

90video
~28 giờnội dung
20hạng mục kit tự kiểm
12 thángtruy cập
Trích bài mở đầu kho video, ghi tại Wecommit Case Study Event, 29/10/2023.
Chuyện quen thuộc

Hệ thống chậm. Sếp hỏi vì sao chậm. Anh em trả lời thế nào ạ?

Đa phần anh em sẽ làm mấy việc này: đọc câu lệnh, thấy nó quét nhiều quá, thêm cái index vào, chạy lại. Lúc nhanh, lúc vẫn chậm. Không hiểu vì sao lúc nhanh lúc chậm. Rồi lần sau gặp lại đúng tình huống đó. Vẫn không biết vì sao.

Vấn đề không nằm ở việc anh em thiếu mẹo. Bản chất là database nghĩ hoàn toàn khác cách chúng ta viết lệnh. Mình viết một câu SELECT, mình tưởng nó chạy từ trên xuống dưới. Không phải đâu. Nó tự quyết định đọc bảng nào trước, dùng index hay không dùng.

Nó quyết định dựa trên cái gì? Dựa trên số liệu thống kê nó đang giữ. Mà số liệu đó thay đổi theo thời gian. Cho nên cùng một câu lệnh, hôm nay nhanh, tháng sau chậm. Không phải do anh em viết dở. Do anh em chưa nhìn thấy cách nó nghĩ thôi.

Tôi ví dụ cho dễ hình dung. Anh em thuê một ông tổng thầu chuyển nhà. Mình bảo chuyển hết đồ sang nhà mới. Ông ấy tự quyết định chuyển cái gì trước, đi đường nào, dùng mấy xe. Mình không ra lệnh từng bước, mình chỉ đưa đề bài. Database cũng thế. Nó là ông tổng thầu. Muốn nó làm nhanh thì phải hiểu nó đang nghĩ gì, chứ không phải quát to hơn.

Vì sao lúc này càng quan trọng

AI viết code ngày càng nhiều. Vậy ai làm cho nó chạy nhanh?

Bây giờ anh em dùng AI viết code, chức năng ra rất nhanh. Tôi cũng dùng hằng ngày. Nhưng anh em để ý một điều nhá. Thằng AI viết câu lệnh dựa trên đề bài anh em đưa cho nó. Nó không nhìn thấy bảng của anh em có bao nhiêu dòng, dữ liệu phân bố ra sao, thống kê đang thế nào, giờ cao điểm production nặng tới đâu.

Cho nên câu lệnh chạy ngon trên máy dev với vài nghìn dòng, lên production vài trăm triệu dòng thì có thể chết. Đúng không ạ?

Database là gốc của mọi hệ thống. Chức năng nào cuối cùng cũng đọc, ghi dữ liệu. Database chậm thì cả hệ thống chậm, nâng cấu hình server hay sửa code ứng dụng cũng không cứu được. Mà dữ liệu thì cứ lớn dần lên theo thời gian.

Chức năng chạy được thì giờ ai có AI cũng làm được. Cái tạo ra khác biệt là hiệu năng. Người hiểu database đủ sâu để nghiệm thu, chỉ đạo và sửa cái phần AI viết ra, đấy mới là người có giá.

Thằng AI làm ngon

  • Viết câu lệnh đúng cú pháp
  • Ra đúng kết quả
  • Chức năng chạy được trên dữ liệu thử

Phần anh em phải giữ

  • Biết câu lệnh đó chạy thế nào trên dữ liệu thật
  • Biết lúc nào nó sẽ chậm, và vì sao
  • Biết sửa ở đâu khi nó chậm
Trích bài "Không có chiến lược cập nhật statistics", Chương 3, khoảng 3 phút.
Xem thử

Lúc nhanh lúc chậm, mà chẳng thay đổi gì cả?

Rất nhiều anh em kể với tôi: "em chẳng thay đổi gì cả, hôm qua nhanh, hôm nay tự nhiên chậm, vài hôm nữa lại nhanh". Rất nhiều trường hợp là do statistics, tức là thông tin thống kê mà database dùng để chọn chiến lược thực thi.

Đây là vài phút trong bài đó. Anh em xem để biết cách tôi giảng có hợp với mình không đã. Không hợp thì thôi, cũng không sao.

Trần Quốc Huy trình bày tại Wecommit Case Study Event
Vì sao là tôi

15 năm làm tối ưu, không phải ở phòng lab

Tôi làm tối ưu cơ sở dữ liệu 15 năm, ở những nơi như thế này:

Sở Giao dịch Chứng khoán Hà NộiVCBSTechcom SecuritiesVNDIRECTChứng khoán Bảo ViệtNgân hàng Chính sách Xã hộiBảo hiểm VietinBankBảo hiểm Bưu điện PTITập đoàn FPTTikiVTVCABMobiFoneIntellect Design ArenaBệnh viện Bạch MaiBệnh viện Thống Nhất

Ở những nơi này, một câu lệnh chạy sai chiến lược thì không phải chậm vài giây. Nó là hàng trăm nghìn giao dịch bị ảnh hưởng trong ngày hôm đó. Toàn bộ nội dung trong kho lấy ra từ đúng những dự án như vậy. Không có phần nào tôi đọc sách rồi kể lại.

Anh em mang về được gì

Hiểu cách database ra quyết định. Hiểu rồi thì tình huống mới anh em tự suy ra được.

1

Nhìn thấy cách nó nghĩ

Database chọn chiến lược thực thi thế nào, dựa vào đâu. Hết đoán mò kiểu "thêm cái index cho chắc".

Chương 1, 2, 4, 5, 6
2

Biết tránh sai trước khi mắc

17 sai lầm và các case thật ở ngân hàng, viễn thông, bệnh viện. Sửa sai trên production đắt hơn nhiều so với làm đúng từ đầu.

Chương 3, 7 và phần mới 2025
3

Áp vào hệ thống của mình

Biết hệ thống mình đang lỗi gì, nên xử trước cái gì, có báo cáo để trình sếp.

Bộ kit AI (Oracle), quy trình và script trong video
Trong kho video có gì

90 video, gần 28 giờ, chia 7 chương và một phần mới 2025

Chương 3 là chương tôi khuyên anh em xem trước tiên. Biết tránh sai đắt hơn biết làm đúng.

Chương 1Nền tảng cho anh em chưa làm dự án tối ưu thực tế1 bài · 2 giờ 28 phút
  • Cách tiếp cận gốc rễ của tối ưu trong mọi loại cơ sở dữ liệu là gì
  • Database chỉ là cái vỏ: bảng, index và cách kết hợp dữ liệu
  • Vì sao cách tiếp cận này dùng được cho mọi loại database
Chương 2Kiến trúc của SQL và Database2 giờ 44 phút
  • Database lưu và lấy dữ liệu thế nào: block, data file
  • Kiến trúc bộ nhớ và những điều cần lưu ý
  • Heap, Clustered Index và Non-clustered Index
  • Index Scan, Key Lookup, RID Lookup trong chiến lược thực thi
  • Góc nhìn trên cả Oracle và SQL Server
Chương 317 sai lầm trong dự án tối ưu17 bài · 2 giờ 21 phút
  • Không hiểu các bước xử lý một câu lệnh SQL trong database
  • Lạm dụng HINT để ép chiến lược thực thi
  • Không có chiến lược cập nhật statistics
  • Thiết kế kiểu dữ liệu không phù hợp
  • Quá nhiều object được thiết lập PARALLEL
  • Index không dùng được: UNUSABLE và INVISIBLE
  • Thiết kế sai partition cho bảng lớn
  • Không dùng bảng tạm đúng cách
  • Không có chiến lược quản lý vòng đời dữ liệu
  • Không để ý mức độ phân mảnh
  • Không đánh giá hiệu quả sử dụng của index
  • Không kiểm tra trạng thái đồ đạc trong nhà mình
  • Sửa và recompile thủ tục khi hệ thống đang chạy
  • Để dữ liệu hệ thống chung với dữ liệu người dùng
  • Dồn nhiều database, ứng dụng lên chung một server
  • Thiết kế CACHE SEQUENCE quá nhỏ
  • Không tận dụng tài nguyên của hệ thống dự phòng
Chương 4Kỹ thuật tối ưu chiến lược thực thi với Index20 bài · 7 giờ 52 phút
  • Kiến thức nền tảng phải biết, 4 phần
  • Trường hợp nào áp dụng được kỹ thuật này
  • Index không hiệu quả: số bản ghi trả ra, NOT IN, %, IS NULL
  • Index không hiệu quả: function, tính toán, cột dẫn đầu
  • Index không hiệu quả: Clustering Factor
  • Index không hiệu quả: kiểu dữ liệu
  • Các loại index khác: Descending, Reverse, Bitmap, Partition Index
  • Câu lệnh DML ảnh hưởng thế nào đến index (1 giờ)
  • Index bị UNUSABLE khi nào
  • Làm thế nào tăng tốc tạo index
  • Live demo đọc chiến lược thực thi trên SQL Server
  • Chiến lược thực thi trong PostgreSQL
  • Demo script Function Index
  • Chủ động phát hiện câu lệnh và bảng lớn bị quét full
Chương 5Tối ưu khi dữ liệu lớn dần qua thời gian8 bài · 3 giờ 09 phút
  • Partition là gì, điều gì cần chú ý
  • Chiến lược thực hiện partition trong dự án thực tế
  • Hỏi đáp về partition
  • Tóm lược những điều cần biết khi làm việc với partition
  • Khác biệt giữa bảng thường và bảng partition
  • Bài toán hiệu năng: partition nào được đọc khi chạy lệnh
  • Các sai lầm khiến partition không đạt hiệu quả
  • Cập nhật statistics trên bảng partition
Chương 6Join, Parallel, Lock14 bài · 4 giờ 18 phút
  • Database thực hiện JOIN như thế nào
  • Giải thuật Nested Loop Join và hỏi đáp
  • Đổi thứ tự viết lệnh JOIN có ảnh hưởng không
  • Demo đổi Driving Table và ảnh hưởng của nó
  • Giải thuật Hash Join
  • Giải thuật Sort Merge Join
  • Hiểu về kỹ thuật Parallel, áp dụng khi vào thế bí
  • Parallel trong DML
  • Lưu ý khi dùng Parallel, hỏi đáp
  • Lock và các case ảnh hưởng tới hiệu năng
  • Demo script kiểm tra Lock
  • Các trường hợp đặc biệt dẫn tới leo thang Lock
Chương 7Case study và nội dung bổ trợ6 bài · 1 giờ 50 phút
  • Phân tích một báo cáo đánh giá hiệu năng thực tế
  • DBTime là gì, phân tích báo cáo AWR của một ngân hàng
  • Case study: dung lượng log tăng trưởng đột biến
  • Phân tích AWR nhanh gọn
  • Đo lường năng lực của chính mình
  • Các cấp độ của việc học
Mới 2025Phần mới, chưa từng đưa ra ngoài 23 bài3 giờ 07 phút
  • Framework tư duy với Metadata
  • Dùng Metadata xử lý hệ thống OLTP bị treo
  • Production có nên bật lưu Metadata xuống disk không
  • Database có tự khuyến cáo tối ưu được không
  • Kỹ thuật GROUP BY để dự đoán index có hiệu quả không
  • Phân tích trực tiếp AWR
  • Case lock trầm trọng trong hệ thống bệnh viện
  • Sai lầm làm treo database vì nghẽn bộ nhớ
  • Dữ liệu LOB và các vấn đề thường gặp
  • Phân tích dự án Oracle bị chậm
Tặng kèm

Bộ kit AI kiểm tra sức khoẻ Oracle

Xem video xong, anh em sẽ hỏi: thế hệ thống của mình đang dính mấy lỗi trong số đó? Bộ kit này trả lời câu đấy.

Chạy một script chỉ đọc. Script chỉ SELECT, không cần quyền SYSDBA, kiểm 20 hạng mục: bảng lớn bị quét full, khoá ngoại thiếu index, câu lệnh không dùng bind variable, index hỏng, statistics cũ…
Đưa kết quả cho Claude. Skill tôi đóng gói sẵn sẽ đọc 20 tệp kết quả và dựng một báo cáo dashboard.
Cầm báo cáo đi làm. Lỗi xếp theo 4 mức, có kế hoạch xử lý, gửi thẳng cho sếp được. Mỗi lỗi chỉ thẳng tới bài trong kho video cần xem để sửa.

Bản chất là thế này: thằng AI làm phần việc nặng, đọc số liệu và viết báo cáo. Còn luật kiểm tra, ngưỡng, cách xử lý là kinh nghiệm 15 năm tôi giao cho nó. Mỗi con số trong báo cáo đều truy ngược được về dòng dữ liệu gốc.

Bộ kit chạy trên Oracle 12.2 trở lên (19c đủ 20 hạng mục), cần quyền SELECT_CATALOG_ROLE. 4 hạng mục đọc AWR cần license Diagnostics Pack. Anh em cần tài khoản Claude gói Pro trở lên có bật chạy code, hoặc Claude Code. Báo cáo do AI viết, anh em hoặc DBA cần xác nhận trước khi sửa trên production.

Mở báo cáo mẫu đầy đủ

Báo cáo mẫu, phần Tổng thể
Phần Tổng thể: phán quyết, số lỗi theo 4 mức, tải từng instance trong 7 ngày. Dữ liệu giả lập của một hệ thống mẫu.
Báo cáo mẫu, một vấn đề kèm bài học
Mỗi vấn đề có phân tích, khuyến nghị, cách rollback, và bài cần xem lại trong kho video.
Cách dùng đúng

Đây là thư viện tra cứu, không phải khoá học phải học xong

Rất nhiều kiến thức trong này, anh em không cần xem hết trong thời gian ngắn làm gì. Hệ thống đang gặp vấn đề gì thì mở đúng bài đó ra tra.

Câu lệnh chậm bất thườngVào Chương 3
Không hiểu vì sao index không được dùngVào Chương 4
Bảng phình to theo thời gianVào Chương 5
Hệ thống bị treo do lockVào Chương 6

Giống như anh em có một ông đồng nghiệp 15 năm kinh nghiệm ngồi cạnh. Không phải lúc nào cũng cần hỏi. Nhưng lúc bí thì có chỗ để tra.

Nói thẳng trước

Cái này dành cho ai, và không dành cho ai

Dành cho

  • Anh em backend, fullstack đang làm với dữ liệu thật và hệ thống có tải
  • Anh em DBA muốn hiểu tận gốc thay vì chạy theo triệu chứng
  • Anh em chuẩn bị phỏng vấn vị trí cần hiểu sâu về hiệu năng
  • Anh em đang giữ một hệ thống chậm dần mà chưa biết bắt đầu từ đâu

Không dành cho

  • Anh em chưa từng viết SQL. Đây không phải khoá nhập môn, xem sẽ nản
  • Anh em muốn có người sửa hộ hệ thống. Ở đây tôi chia sẻ cách làm, người làm vẫn là anh em
  • Anh em cần buổi Zoom trực tiếp, hỏi đáp riêng hay cộng đồng đi kèm. Bản này không có mấy thứ đó

Về loại database: phần tư duy dùng được cho mọi RDBMS. Phần demo đa phần làm trên Oracle. SQL Server có bài đọc chiến lược thực thi riêng và phần Heap, Clustered Index. PostgreSQL có bài chiến lược thực thi riêng. Bộ kit chỉ chạy với Oracle.

Gói và giá

Bản tự học: giữ nguyên phần chuyên môn, bỏ phần kèm cặp

Chương trình có tôi kèm trực tiếp trước đây tôi bán 8 đến 30 triệu cho 12 tháng. Bản này giữ nguyên phần chuyên môn, thêm phần mới 2025 và bộ kit AI, bỏ phần kèm cặp.

Cá nhân 2.990.000đ 1 tài khoản
  • Toàn bộ 90 video, xem 12 tháng
  • Bộ kit AI kiểm tra sức khoẻ Oracle, tải về dùng mãi, cập nhật trong 12 tháng
  • Tài liệu mô tả 20 hạng mục kiểm tra
Đăng ký qua Zalo
Nhóm 5 người 9.900.000đ Khoảng 2 triệu mỗi người
  • Như gói Cá nhân, cho 5 tài khoản
  • Có hoá đơn VAT cho công ty
  • Hợp với nhóm dev, nhóm DBA mua chung
Liên hệ mua cho nhóm

Hoàn tiền 100 % trong 3 ngày kể từ lúc đăng ký, nếu anh em chưa xem quá 20 % số video. Thấy không như kỳ vọng thì báo lại. Quá 3 ngày hoặc đã xem quá mức đó thì không áp dụng hoàn tiền.

Hỏi đáp

Mấy câu anh em hay hỏi

Tôi làm SQL Server hoặc PostgreSQL thì có dùng được không?

Phần tư duy thì dùng được. Database loại nào thì 80 đến 90 % việc của nó cũng là làm việc với bảng, với index, và kết hợp dữ liệu từ nhiều bảng. Nhưng phần demo đa phần làm trên Oracle. SQL Server có bài đọc chiến lược thực thi riêng, PostgreSQL cũng có. Bộ kit thì chỉ chạy với Oracle. Anh em cần demo SQL Server là chính thì cân nhắc trước khi mua nhá.

Có phải xem hết theo thứ tự không?

Không cần. Đây là thư viện tra cứu. Tôi khuyên xem Chương 3 trước, sau đó hệ thống gặp gì thì tra đúng chương đó.

Bộ kit cần những gì để chạy?

Oracle 12.2 trở lên, user có quyền SELECT_CATALOG_ROLE. Không có quyền thì anh em nhờ DBA chạy giúp, vì script chỉ đọc, không sửa gì. 4 hạng mục đọc AWR cần license Diagnostics Pack, không có thì vẫn chạy được 16 hạng mục còn lại. Anh em cần thêm tài khoản Claude gói Pro trở lên có bật chạy code, hoặc Claude Code trên máy có Node.js.

Báo cáo do AI viết thì có tin được không?

Mọi con số trong báo cáo lấy từ chính kết quả script chạy trên hệ thống của anh em, truy ngược được về từng dòng. Phần nhận xét và khuyến nghị do AI viết theo luật tôi đặt sẵn. Nhưng trước khi sửa gì trên production, anh em hoặc DBA vẫn phải xác nhận. Đấy là nguyên tắc.

Xem được bao lâu?

12 tháng kể từ lúc đăng ký. Bộ kit anh em tải về thì dùng mãi, bản cập nhật có trong 12 tháng.

Có hỏi đáp riêng với anh Huy không?

Không có. Đây là bản tự học, không có buổi Zoom, không có hỏi đáp riêng, không có cộng đồng đi kèm. Cho nên giá của nó thấp hơn nhiều so với chương trình có tôi kèm trực tiếp.

Công ty tôi muốn mua cho cả nhóm, có hoá đơn không?

Có. Gói Nhóm 5 người có xuất hoá đơn VAT. Anh em liên hệ qua Zalo để làm thủ tục.

Đúc kết ở đây là gì?

Tối ưu cơ sở dữ liệu không phải là học thuộc mấy cái mẹo. Nó là hiểu được cách database nghĩ. Hiểu rồi thì tình huống mới anh em tự suy ra được, không cần ai chỉ nữa. Mà lúc AI viết code càng nhiều thì cái hiểu này càng có giá.

15 năm của tôi nằm trong đây. Anh em không phải đi lại quãng đường đó. Còn mua hay không thì tuỳ anh em. Không phù hợp thì thôi, cũng không sao.