Dưới đây là phiên bản viết lại bài viết từ link bạn cung cấp, theo hướng phân tích sâu sắc hơn về kiến trúc index trong Oracle, lý giải vì sao truy vấn dùng Index có thể chạy chậm hơn Full Table Scan, kèm mô hình truy xuất dữ liệu, các khái niệm như selectivity, random I/O, và cost-based optimizer.
- HOME
- BASIC
- INSTALL
- ADMIN
- FULL BÀI VIẾT
- CÂU HỎI THƯỜNG GẶP
- ADMIN TUTORIAL
- CÀI ĐẶT, PATCH
- UPGRADE/MIGRATION
- NGUYÊN LÝ
- CÔNG CỤ
- INSTANCE
- USER, QUYỀN
- LƯU TRỮ (STORAGE)
- GIAO DỊCH
- BẢO MẬT
- OBJECTS
- BACKUP
- RECOVERY
- BẢO TRÌ
- HIỆU NĂNG (PERFORMANCE)
- CÁC LỖI THƯỜNG GẶP
- TROUBLESHOOTING
- QUY TRÌNH VẬN HÀNH ORACLE DATABASE A-Z
- VẬN HÀNH TỰ ĐỘNG
- TIPS
- KHO TÀI NGUYÊN
- EXADATA
- KHÁC
- DEV
- SECURITY
- TUNNING
- RAC
- HA
- OTHER DB
- SYSTEM
- SOLUTION
- TRAINING
- CONTACT
Thứ Ba, 24 tháng 6, 2025
Thứ Sáu, 13 tháng 1, 2023
Tăng tốc database Index phần 13 Merge
Tăng tốc database Index phần 12 với LIKE
Nếu các bạn chưa đọc bài trước có thể đọc tại link Tăng tốc database phần 11 Tìm kiếm theo Khoảng, Lớn Hơn, Nhỏ Hơn, và BETWEEN
Truy vấn với Like nhiều lúc rất hiệu quả, nhiều lúc lại rất chậm. Có thể một số từ khóa được đánh index tốt, một số thì không. Nhiều lúc vị trí của wild card có thể cho kết quả rất khác nhau. VÍ dụ dùng % wild card ở giữa từ khóa
Tăng tốc database index phần 11 Tìm kiếm theo Khoảng, Lớn Hơn, Nhỏ Hơn, và BETWEEN
Nếu các bạn chưa đọc bài trước có thể đọc tại đây (10 - Query với tham số)
Các phép toán lớn hơn (>) nhỏ hơn (<) và BETWEEN cũng có thể sử dụng index giống toán tử bằng (=), thậm chí kể cả toán tử LIKE cũng có thể dùng được trong một số trường hợp. Việc dùng index kiểu này có giới hạn nếu đánh index trong một index chứa nhiều cột và chọn cột nào trước, cột nào sau. Nhiều khi không thể chọn được thứ tự đúng.
Tăng tốc database index phần 10 - Query với tham số
Nếu các bạn chưa đọc bài trước có thể đọc tại link Tăng tốc database index phần 9 - Function- User-Defined Function
Có hai cách để truyền dữ liệu vào database, một là truyền trực tiếp qua câu lệnh, hai là truyền qua tham số, thường là sử dụng ?, :name or @name và truyền giá trị tương ứng qua lời gọi.
Tăng tốc database index phần 9 - Function - User-Defined Function
Nếu các bạn chưa đọc bài trước có thể đọc tại link Tăng tốc database index phần 8 - Function- Tìm kiếm không phân biệt chữ Hoa chữ Thường- UPPER và LOWER
Dùng Function-based có vẻ ngon rồi nhưng có phải mọi hàm đều sử dụng được nó không? Có thể dùng hàm mặc định như UPPER cũng có thể dùng biểu thức kiểu A+B có thể dùng cả hàm tự định nghĩa nữa. Tuy nhiên có một ngoại lệ quan trọng có là hàm có phụ thuộc vào thời gian hiện tại ( dù là gián tiếp hay trực tiếp) ví dụ
Tăng tốc database index phần 8 - Function - Tìm kiếm không phân biệt chữ Hoa chữ Thường - UPPER và LOWER
Nếu các bạn chưa đọc bài trước có thể đọc tại link này Tăng tốc database index phần 7 -Index chậm 2
Phần này trong thực tế mình không gặp, do mình luôn để collation trong DB là Case-Insensitive, tuy nhiên vì mình dịch từ bài gốc của tác giả nên mình sẽ dịch luôn và không cắt gọt. Biết đâu có lúc nào đó lại thiết kế db Case-Sensitive thì sao. Lúc đó có thể dùng được chỗ này. Trong trường hợp database thiết kế có phân biệt hoa thường, mà cần truy vấn không phân biệt hoa thường, cách thông thường sẽ truy vấn như thế này.
Tăng tốc database index phần 7 - Index chậm 2
Nếu các bạn chưa đọc bài trước có thể đọc tại link này Tăng tốc database index phần 6 -Index kết hợp
Trong phần trước mình đã trình bày về lợi ích đạt được khi đổi vị trí index, tuy nhiên ví dụ chỉ xem xét với 2 câu lệnh SQL. Tuy nhiên việc thay đổi index có thể ảnh hưởng tới tất cả các câu truy vấn trên bảng. Phần này sẽ trình bày về cách database chọn một index và các ảnh hưởng có thể xảy ra khi thay đổi index đã có.
Tăng tốc database index phần 6 - Index kết hợp
Nếu các bạn chưa đọc bài trước có thể đọc tại link này Tăng tốc database index phần 5 -WHERE trên khóa chính
Tăng tốc database index phần 5 - WHERE trên khóa chính
Nếu các bạn chưa đọc bài trước có thể đọc tại link này Tăng tốc database index phần 4 - Index chậm
Tăng tốc database index phần 4 - Index chậm
Như bài trước đã viết, tốc độ duyệt cây tìm kiếm cân bằng là siêu nhanh, thế mà không hiểu sao mình đã đánh index rồi mà lệnh truy vấn vẫn chậm, mấy thằng cha làm cơ sơ dữ liệu như Larry Ellison nó lừa mình kiếm tiền tỷ phải không? Ngày xửa ngày xưa, từ hồi anh em cây khế còn chơi với nhau, cho tới bây giờ có một giai thoại được truyền tai nhau giữa các dev là index để lâu càng ngày càng chậm, lâu lâu phải rebuild lại index một lần. Thực tế thì không phải như vậy, cây index luôn luôn có một độ sâu cố định và luôn được duy trì ở trạng thái cân bằng. Việc đánh index rồi mà truy vấn vẫn chậm có thể còn hai nguyên nhân nữa. Đầu tiên ta phải hiểu khi truy vấn dữ liệu theo index gồm 3 bước
Tăng tốc database index phần 3 - B-Tree
Tăng tốc database index phần 2 - Leaf Nodes
Bài trước khái niệm cơ bản
Đầu tiên mình định dịch ra là nút lá, nhưng nghe nó không được hay cho lắm nên quyết định giữ nguyên tên của nó là Leaf Nodes.
Tăng tốc database index phần 1 - khái niệm cơ bản
Phần đầu tiên trong chuỗi bài là các phần liên quan tới database, nhiều bạn thích trình bày các vấn đề khác về database tuy nhiên theo kinh nghiệm cá nhân mình thấy hiểu về index trong db rất quan trọng trong quá trình nâng cao hiệu năng của chương trình, đôi khi chỉ cần đánh index thôi mà tốc độ đang từ rùa bò trở nên tốc độ bàn thờ . Nhưng có phải index luôn giúp truy vấn nhanh hơn không? Đầu tiên là khái niệm index là gì?
Thứ Hai, 28 tháng 2, 2022
Hiểu về index partition, phân biệt local index và global index
Mục đích:
ĐỌC NHIỀU
-
Checklist triển khai theo 6 giải pháp của Bộ TT&TT (có phân vai “Ai làm gì” – từng bước – mẫu tài liệu cần chuẩn bị). Template “Kế h...
-
ASM là viết tắt của “Automatic Storage Management” trong hệ thống quản lý cơ sở dữ liệu của Oracle. ASM là một công nghệ của Oracle Databas...
-
Serial: sneep All Hardware # prtdiag -v // verbose show đầy đủ thông tin # prtconf