Thứ Tư, 3 tháng 11, 2021

Hiểu về tham số cursor_sharing trong Oracle Database

Mục đích: Giúp bạn hiểu được tham số cursor_sharing trong Oracle Database

Exact: giống y đúc (default)

ALTER SESSION SET CURSOR_SHARING=Exact;

SELECT SUM(salary) FROM hr.employees WHERE employee_id < 101;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());

-- Các câu lệnh sau chạy sẽ vẫn phải hard parse (parse lại từ đầu)

SELECT SUM(salary) FROM hr.employees WHERE employee_id < 120;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());

SELECT SUM(salary) FROM hr.employees WHERE employee_id < 165;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());

--> Giải pháp thường dùng là viết code theo hướng dùng bind biến tức là viết code dạng:

SELECT SUM(salary) FROM hr.employees WHERE employee_id < :"SYS_B_0"

Khi đó Oracle sẽ dùng câu lệnh này với Plan đã phân tích mà không phải parse lại (hard parse) nữa.

Force: Tương tự nhau

ALTER SESSION SET CURSOR_SHARING=FORCE;

SET LINESIZE 170
SET PAGESIZE 0
SELECT SUM(salary) FROM hr.employees WHERE employee_id < 101;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());

--> Giống Plan với câu lệnh sau:

SELECT SUM(salary) FROM hr.employees WHERE employee_id < :"SYS_B_0"

Các câu lệnh sau chạy sẽ không phải parse nữa (tức là dùng soft parse thay vì hard parse)

SELECT SUM(salary) FROM hr.employees WHERE employee_id < 120;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());

SELECT SUM(salary) FROM hr.employees WHERE employee_id < 165;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR());

Tuy nhiên các câu lệnh khi viết thêm các ký tự space hoặc chữ hoa trong tên bảng thì sẽ bị parse lại (hard parse):

SELECT SUM(salary)           FROM hr.employees WHERE employee_id < 165;
SELECT SUM(salary)           FROM hr.Employees WHERE employee_id < 165;
SELECT SUM(salary)           FROM hr.Employees WHERE EMployee_id < 165;

Các bạn chú ý nhé.

Hy vọng hữu ích cho bạn.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, oracle oca, oracle ocp, oracle ocm
Sửa bài viết

Thứ Năm, 21 tháng 10, 2021

Thủ tục Cài đặt từng bước (step by step) Cơ sở dữ liệu Oracle 12c trên Solaris 10

Trong bài này tôi sẽ hướng dẫn các bạn từng bước Cài đặt cơ sở dữ liệu Oracle 12C trên Solaris x86 phiên bản 64bit. Bài viết này giả định rằng bạn đã cài đặt Solaris 10 trên Virtualbox hoặc VMWare
Sửa bài viết

Nâng cấp thủ công (Manual Upgrade) cơ sở dữ liệu Oracle từ 11.2.0.4 lên 12.2.0.1/19c

Mô tả 

Nâng cấp thủ công (Manual Upgrade) bao gồm chạy các  SQL script và các tiện ích từ dòng lệnh để nâng cấp cơ sở dữ liệu lên phiên bản Cơ sở dữ liệu Oracle mới hơn.

ORACLE_HOME hiện tại = /u01/app/oracle/product/11.2.0.4/db_1

ORACLE_HOME mới = /u03/app/oracle/product/12.2/db_1

Tên cơ sở dữ liệu: Test

Sửa bài viết

Migrate và Upgrade Oracle 11gR2 Windows/Linux Database tới Oracle 12cR2/19c Linux Database sử dụng Oracle Datapump

Trong bài viết này, chúng ta sẽ migrate (di chuyển) cơ sở dữ liệu oracle từ windows/linux sang máy chủ linux đồng thời upgrade (nâng cấp) cơ sở dữ liệu từ Oracle Database 11.2.0.1 lên 12.2.0.1/19c bằng cách sử dụng export/import với Oracle Datapump

Sửa bài viết

Migrate và Upgrade Oracle 11gR2 Windows/Linux Database tới Oracle 12cR2/19c Linux Database sử dụng Oracle Datapump

Trong bài viết này, chúng ta sẽ migrate (di chuyển) cơ sở dữ liệu oracle từ windows/linux sang máy chủ linux đồng thời upgrade (nâng cấp) cơ sở dữ liệu từ Oracle Database 11.2.0.1 lên 12.2.0.1/19c bằng cách sử dụng export/import với Oracle Datapump

Sửa bài viết

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master