Result Cache Oracle Database | Tối ưu câu lệnh SQL về 0s

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ต.ค. 2024
  • Mục tiêu: Anh em đã bao giờ nghe thấy thuật ngữ RESULT CACHE chưa? và anh em có tin vào việc 1 câu lệnh SQL có thể chạy chỉ mất 0s không? Trong video này tôi sẽ có demo dẫn chứng và giải thích chi tiết để anh em có thể hiểu và tận dụng được tính tăng này
    Ghi chú: Nếu bạn là một lập trình viên và muốn phát triển sự nghiệp một cách nhanh chóng hơn. Tôi có một khoá học có thể giúp bạn phát triển rất nhanh (cả về CHIỀU RỘNG và CHIỀU SÂU), tại khoá học này bạn sẽ được chia sẻ tất cả những kinh nghiệm và kiến thức của tôi đã tích luỹ trong hơn 10 năm trực tiếp điều hành Wecommit - công ty chuyên tư vấn và tối ưu các cơ sở dữ liệu và hệ thống lớn.
    Xem chi tiết khoá học của tôi ở đây: wecommit.com.v...
    Bạn có thể xem các dự án mà tôi đã trực tiếp thực hiện tại đây: wecommit.com.v...
    🎯 Một số Video khác bạn có thể xem:
    Quy trình 6 bước phải biết khi tối ưu câu lệnh SQL: • Quy trình 6 bước buộc ...
    Hiểu toàn bộ kiến thức về PostgreSQL trong 1h30 phút: • Hiểu toàn bộ PostgreSQ...
    Học SQL Server trong 60 phút : • Học SQL Server trong 6...
    Học MongoDB trọn vẹn trong 1 giờ 30 phút: • Học MongoDB trọn vẹn t...
    Hiểu kiến trúc của cơ sở dữ liệu Oracle trong 20 phút: • Hiểu Oracle Database t...
    📱 Nếu bạn muốn liên hệ với tôi:
    Zalo: 0888549190
    Linkedin: / huytq
    Facebook: / tranquochuy.toiuu
    🌐 Nguồn tài liệu: Tôi tổng hợp từ các kiến thức và kinh nghiệm của bản thân trong hơn 10 năm làm các dự án tối ưu cơ sở dữ liệu.
    #toiuu100x #tranquochuy #wecommit #databasedesign #databaseperformance #databasetutorial #toiuucosodulieu #thietkecosodulieu #toiuusql

ความคิดเห็น • 74

  • @tranquochuywecommit
    @tranquochuywecommit  18 วันที่ผ่านมา

    Gửi mọi người Group Telegream Wecommit Public Community : www.wecommit.com.vn/wecommitcommunity ,anh em có thể trao đổi những câu hỏi , vấn đề khi xem Video và kết nối với tôi trong Group nhé (trường hợp click trực tiếp bị lỗi thì ae copy link ra browser nhé)

  • @juhandvan
    @juhandvan ปีที่แล้ว +5

    Mới biết qua kênh của a thôi nhưng theo cảm nhận cá nhân thì đây là kênh tiếng Việt dạy về kiến thức data base hay nhất trong các channel e từng xem.
    Cám ơn anh rất nhiều ạ

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Cảm ơn anh em, mình còn có cả các bài viết về tối ưu SQL, anh em có thể đọc để bổ trợ cho phần video nhé wecommit.com.vn/kien-thuc-huu-ich/

  • @KeeHoo-tz2be
    @KeeHoo-tz2be 8 วันที่ผ่านมา

    cảm ơn anh Huy, rất hay, cho anh 3 likes luôn ạ

  • @quybv9011
    @quybv9011 ปีที่แล้ว +9

    Cache nhiều cách cache, cache ở database ở, web server. vấn đề khi dữ liệu thay đổi liên tục cache này như thế nào, ví dụ 0,001s, CCU tới hàng nghìn.việc vấn đề tính toán tràn bộ nhớ. count* nhưng vấn đề kết quả nhiều bản ghi thì sao. tính toán số lượng Ram như thế nào, chủ yếu bạn phải đưa ra tình hướng xử lý khác nhau mới là quan trọng

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      bài này mình chỉ nêu 1 kỹ thuật Cache, mình có những bài phân tích chuyên sâu dạng bài viết, anh em có thể tham gia nhóm Zalo để xem cụ thể hơn nhé.

    • @hieuquachminh343
      @hieuquachminh343 ปีที่แล้ว

      @@tranquochuywecommit cho em xin link nhóm zalo với ạ, em cảm ơn ạ!

    • @hiepphamminh5863
      @hiepphamminh5863 ปีที่แล้ว

      @@tranquochuywecommit em xin nhóm zalo với ạ

  • @LongNguyen-cs1wc
    @LongNguyen-cs1wc ปีที่แล้ว +5

    nếu tables đó thay đổi thêm xóa data thì kết quả Cache có bị xóa đi ko bạn. Làm cách nào mình xóa cái cache đó đi khi data thay đổi

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว +1

      Phần nội dung này muốn đọc cần có mật khẩu, bạn có thể vào nhóm Zalo sau để nhận mật khẩu (miễn phí): zalo.me/g/spohzm074
      Mình có làm demo và giải thích chi tiết trong đó.

    • @tienlx91
      @tienlx91 ปีที่แล้ว +5

      có hỏi 1 câu đơn giản sao lại cần mật khẩu, trong khi 11:44 phút chỉ làm có 1 ví dụ đơn giản có thế làm ngắn ngọn trong 2 phút hoặc ít hơn

    • @timnguyen8190
      @timnguyen8190 ปีที่แล้ว

      @@tranquochuywecommit Group báo vượt quá số thành viên cho phép rồi anh !

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Anh em vào link này nhé wecommit.com.vn/zalo

  • @phanmemchamcongHRADEnterprise
    @phanmemchamcongHRADEnterprise ปีที่แล้ว +1

    Thớt nên chỉnh lại tiêu đề video là Mẹo nhỏ tăng tốc truy xuất kết quả với thop cơ bản

  • @tranquochuywecommit
    @tranquochuywecommit  ปีที่แล้ว

    Các bạn có thể xem danh sách toàn bộ những bài viết và demo tối ưu cơ sở dữ liệu tại đây: wecommit.com.vn/tong-hop-link-cac-bai-viet-hay-tren-trang-wecommit-com-vn/

  • @AnneLee00
    @AnneLee00 ปีที่แล้ว +2

    Làm thế nào để tối ưu hoá câu lệnh ở lần đầu tiên chạy đã có thể đạt được kết quả 0s ạ?

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว +2

      Câu lệnh SQL cũng giống như đời thường em ah, nếu lần đầu tiên mình vào một căn nhà và tìm đồ đạc, thì không thể tìm với thời gian 0s được.

    • @AnneLee00
      @AnneLee00 ปีที่แล้ว +2

      @@tranquochuywecommit vậy việc tối ưu này có ý nghĩa gì ạ?

    • @TheNavaRose
      @TheNavaRose ปีที่แล้ว

      ​@@AnneLee00có ý nghĩa là làm cho thời gian tìm kiếm giảm xuống xấp xỉ 0s kể từ lần thứ hai gọi lệnh. -_-

  • @hungaoquoc8927
    @hungaoquoc8927 ปีที่แล้ว

    Result cache sử dụng gì để lưu kết quả thầy, dùng ram hay lưu vào CSDL luôn...?

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว +1

      Lưu vào 1 phần trong bộ nhớ (thuộc kiến trúc bộ nhớ của CSDL) anh em nhé.

  • @hientranthu2645
    @hientranthu2645 11 หลายเดือนก่อน

    Nếu cùng 1 sqlid nhưng truyền biến khác nhau thì sao anh nhỉ. Em đoán là không nếu vậy thì thật khó để áp dụng vào môi trường product.

    • @tranquochuywecommit
      @tranquochuywecommit  11 หลายเดือนก่อน

      truyền biến khác nhau thì không có hiệu quả em nhé.
      Anh có bài viết trên wecommit case nào mới áp dụng được kỹ thuật này đấy.

  • @davidmedia961
    @davidmedia961 ปีที่แล้ว

    Giải pháp có áp dụng được khi dữ liệu thay đôi thường xuyên ko ạ

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      giải pháp này chỉ phù hợp với hệ thống ít thay đổi dữ liệu anh em nhé.

  • @MrMrEmpty
    @MrMrEmpty ปีที่แล้ว

    Query select trên 1 view có thực sự nhanh hơn trên bảng có index không ạ? Khi em có 1 bảng 10tr records thì nên dùng cách nào để tạo ra các loại báo cáo từ bảng đó là gì ạ? Em cảm ơn anh!

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว +1

      Chào anh em.
      Về bản chất thì View không giúp lấy dữ liệu nhanh lên đâu.
      Anh em có thể trải nghiệm bằng cách cứ viết câu lệnh sử dụng View và kiểm tra chiến lược thực thi sẽ thấy rõ điều này.
      Nếu anh em muốn giải quyết tường tận các bài toán tối ưu thì cần nhiều thứ phải tìm hiểu đấy.
      Nếu được, anh em có thể tìm tới chương trình Từ điển tối ưu 100x hiệu năng, anh em nhé.

    • @MrMrEmpty
      @MrMrEmpty 11 หลายเดือนก่อน

      @@tranquochuywecommit cảm ơn anh đã chia sẻ ạ!

  • @toano2913
    @toano2913 ปีที่แล้ว

    e nghĩ cần phải chỉ rõ use case thực tế khi dùng. Đây chỉ là liệt kê, giới thiệu Hint.

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Anh có chia sẻ các bài đọc bổ trợ về kỹ thuật này đấy. Em có thể vào nhóm sau để đọc trọn vẹn nhé wecommit.com.vn/zalo

  • @thanhsonha7009
    @thanhsonha7009 ปีที่แล้ว

    bảng thay đổi liên tục thì sao nhỉ?? có vẻ sẽ phù hợp với bảng ít thay đổi

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Giải pháp này sinh ra là cho các table ít thay đổi anh em nhé

  • @lochoangphu2863
    @lochoangphu2863 ปีที่แล้ว

    A ơi cho em hỏi cách này nó lưu kết quả thôi hay sao ạ. Ví dụ trong lúc đó em insert thì có đúng k ạ

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Em có thể tìm bài phân tích chi tiết của anh trên wecommit.com.vn nhé

  • @tuduong2479
    @tuduong2479 ปีที่แล้ว

    A Huy ơi , trường hợp run lần 2 trở đi nếu như có record mới được insert vô emp thì liệu count này nó có tính toán lại count ko hay lấy từ cache nhỉ?

  • @LosingYourMemory1
    @LosingYourMemory1 ปีที่แล้ว +2

    Cái này thì khác đếch gì mình create table trước rồi mình select lại vào bảng đó đâu. Cái này không thể gọi là cách tối ưu câu lệnh đc. Muốn tối ưu, mình phải dựa vào logic code, sử dụng index, partition hợc sử dụng hint chứ. Nên cách này mà bảo là kỳ quan thế giới về cách tối ưu là ko chính xác. Lùa gà quá

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว +1

      Đây cũng gọi là HINT đấy bạn ah. Và cách creat table như bạn nói thì sai bản chất rồi.

  • @bh4541
    @bh4541 ปีที่แล้ว

    sqlserver câu lệnh cũng y chang đúng ko a, sao e thấy ko có thay đổi gì hết ta @@

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      kỹ thuật này là áp dụng cho Oracle anh em nhé. SQL Server thì dùng cách khác để tối ưu.

  • @thuonglengoc6875
    @thuonglengoc6875 ปีที่แล้ว

    Postgresql lam the nao vay a

  • @mr.cchannel1879
    @mr.cchannel1879 ปีที่แล้ว

    Khi nào thì cache này bị invalidate nhỉ? Khi data thay đổi? Và db dựa vào đâu để lưu cache này?

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Khi các objects liên quan bị thay đổi thì hệ thống sẽ phải tính toán lại câu lệnh SQL anh em nhé. Trong database có 1 phần cache riêng để lưu kết quả RESULT CACHE.

  • @phanmemchamcongHRADEnterprise
    @phanmemchamcongHRADEnterprise ปีที่แล้ว

    Nếu câu SQL y chang nhưng khác khoảng trắng hay thêm as thì bản chát ko thay đổi thì INT có hiểu ko

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Hệ thống coi rằng đó là 2 câu lệnh khác nhau anh em ah, mình có một bài viết chi tiết về phần này đấy.

  • @creativevn2924
    @creativevn2924 ปีที่แล้ว

    Cái này có đảm bảo tính nhất quán của dữ liệu không anh? Khi số lượng bản ghi bị thay đổi 😅

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      nhất quán nhé anh em. Bản thi thay đổi thì hệ thống sẽ tự tính lại.

    • @ThanhNguyen_406
      @ThanhNguyen_406 11 หลายเดือนก่อน

      @@tranquochuywecommit tính lại thì lại chậm đúng ko a, lần tiếp theo thì mới nhanh

  • @nguyenquangang
    @nguyenquangang ปีที่แล้ว

    hay quá anh ạ

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Nếu muốn đọc thêm cả những bài blog của anh thì em có thể tham gia nhóm này nhé: wecommit.com.vn/zalogroup

  • @tuantranvan8807
    @tuantranvan8807 ปีที่แล้ว

    SELECT /*+ RESULT_CACHE */ * FROM list_product chạy câu lệnh này trên hệ quản trị rất nhanh chỉ 0.0015s vs bản ghi là 60k ... but khi qua server node truy vấn cậu lệnh mất 10s :(( ko biết vấn đề ở chỗ nào mn có thể help e ko ạ

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Anh có tổ chức Q&A hỗ trợ hàng tuần dành cho học viên nhóm đặc quyền, hỗ trợ các vấn đề tối ưu khi áp dụng trong thực tế. Em có thể xem chương trình này nhé: wecommit.com.vn/chuong-trinh-dao-tao-toi-uu-co-so-du-lieu-wecommit/

  • @nguyenminhoan7882
    @nguyenminhoan7882 ปีที่แล้ว

    mình có db 100 tr bản ghi, khoảng 2TB thì xử lý ntn

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      đề bài cần rõ hơn anh em ah.

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Anh em có thể tham gia group này (miễn phí) để xem tất cả những nội dung tối ưu của mình tại đây: wecommit.com.vn/zalo

  • @tranquochuywecommit
    @tranquochuywecommit  ปีที่แล้ว

    Một số nội dung bên bên ngoài Video này, vô cùng quan trọng nếu bạn muốn áp dụng cho hệ thống Production:
    1. Điều gì sẽ xảy ra khi dữ liệu của bảng bị thay đổi? Liệu dữ liệu trả ra có bị SAI hay không?
    2. Tôi nên áp dụng bí kíp này ở mức độ nào
    3. Các cơ sở dữ liệu SQLServer, PostgreSQL, MySQL thì áp dụng thế nào?
    Phần nội dung này muốn đọc cần có mật khẩu, bạn có thể vào nhóm Zalo sau để nhận mật khẩu (miễn phí): wecommit.com.vn/zalogroup
    Trong nhóm Zalo trên bạn sẽ được đọc các bài viết mới nhất của tôi về tối ưu cơ sở dữ liệu vào mỗi ngày thứ 5 hàng tuần.

    • @thomtran527
      @thomtran527 ปีที่แล้ว

      group quá thành viên rồi ạ. Em ko vào được

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      @@thomtran527 Em có thể vào qua link này em nhé: wecommit.com.vn/zalogroup

    • @daivu469
      @daivu469 ปีที่แล้ว

      Oops! That page can’t be found.

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      @@daivu469 anh em ấn vào link nào bị lỗi thế, gửi mình để mình hỗ trợ nhé.

  • @toanba3444
    @toanba3444 ปีที่แล้ว

    cha này có khiếu hề hước quá . 😆😆

  • @lazydev105
    @lazydev105 ปีที่แล้ว

    cái này trò trẻ con thôi bro, áp dụng vào thực tế không nhiều

  • @duongnam7597
    @duongnam7597 ปีที่แล้ว

    Xin giới thiệu Redis ta đà..... :(

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      anh em thấy sao về giải pháp được đề cập trong video?

    • @duongnam7597
      @duongnam7597 ปีที่แล้ว +1

      @@tranquochuywecommit Ko thực tế lắm bác ạ ^^ thôi bác cứ làm video thôi. mình xài redis quen rồi.

    • @tienlx91
      @tienlx91 ปีที่แล้ว +1

      @@duongnam7597 em đồng ý với bác, nếu tối ưu câu query, thì bác @tranquochuywecommit tối ưu database có tầm 50 triệu records trở lên, 50 bảng trở lên rồi câu query join, sort, group by khoảng 5-10 bảng khác nhau mỗi bảng 1 triệu record thì mới chuẩn, chứ tự nhiên COUNT(*) và chỉ có 1 bảng duy nhất thì chả ăn thua, chưa kể dữ liệu thay đổi sau khi cache thì không biết còn đúng hay không nữa.

    • @guytech9502
      @guytech9502 ปีที่แล้ว

      @@duongnam7597

  • @haovovan2934
    @haovovan2934 ปีที่แล้ว +2

    không khả thi vào thực tế :))

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว +1

      HINT này chỉ phù hợp một số trường hợp đặc thù anh em ah

    • @phanmemchamcongHRADEnterprise
      @phanmemchamcongHRADEnterprise ปีที่แล้ว

      thực tế ko ai dám dùng ResultCache kiểu này, sót dữ liệu KH la cho thúi mỏ

  • @lazydev105
    @lazydev105 ปีที่แล้ว

    cái này trò trẻ con thôi bro, áp dụng vào thực tế không nhiều

    • @tranquochuywecommit
      @tranquochuywecommit  ปีที่แล้ว

      Áp dụng thực tế okie anh em nhé. Tùy vào mức độ nhuần nhuyễn và đánh giá sự phù hợp với bài toán thực tế thôi anh em ah.