微課sql最佳化(1)、基礎概念介紹
資訊系統執行緩慢,伺服器已無法擴充套件? --煩惱
系統效能時快時慢,不知如何最佳化? --鬱悶
每次程式釋出後,系統異常緩慢? --痛苦
各種報表程式,查不出結果? --迷茫
《微課sql最佳化》幫您消除以上困惑,最佳化Oracle資料庫效能,提升使用者體驗,希望以下內容,對您有所幫助!
1、SQL最佳化的核心思想及目的
1、SQL最佳化的核心思想: 減少IO次數 (物理和邏輯)
2、SQL最佳化的目的:減少SQL執行時間
2、練習環境說明
create user ht identified by ht; --建立最佳化使用者
grant dba to ht; --授權
create tablespace yh datafile '/u01/app/oracle/oradata/sndb1/yh01.dbf' size 1g autoextend off;--建立最佳化資料表空間
drop table ht.c_cons;
drop table ht.a_amt;
create table ht.c_cons( --使用者資訊表
cons_no number primary key, --使用者編號,主鍵
cons_name varchar2(100), --使用者姓名
org_name varchar2(100), --使用者單位
build_date date, --建戶日期
status varchar2(20) --使用者狀態,open、creating、close
) tablespace yh;
create table ht.a_amt( --賬務資訊表
amt_id number primary key, --賬務編號,主鍵
cons_no number, --使用者編號
amt_ym varchar2(20), --賬務年月
amt number --出賬費用
) tablespace yh;
3、Query Optimization
? Rule-based optimizer (RBO):
– Based on fixed ranking of possible access paths
– Will be desupported with Oracle Database 10g
? Cost-based optimizer (CBO):
– Introduced with Oracle7
– Based on object statistics
4、概念1、sql最佳化3要素
Cost-Based Optimization (CBO)
CBO uses statistical information about the objects being queried to determine the most cost-effective:
? Access paths 訪問路徑
? Join methods 聯接方式
? Join orders 聯接順序
5、概念2、基數與選擇性
基數(Cardinality):基數表示表中的行數。
選擇性: 表示謂詞從行集過濾特定數量的行。謂詞的選擇性表示有多少行符合查詢條件。選擇範圍從0.0到1.0。選擇性為0.0表示沒有從行集中選擇行,而選擇性為1.0表示選擇了所有行。當該值接近1.0時,該謂詞變得更具選擇性,因為該值接近0.0並且具有較小的選擇性(或更多的非選擇性),
# rows satisfying a condition
Selectivity = -----------------------------------------------------
Total # of rows
SQL> select job,count(1) from scott.emp group by job;
JOB
COUNT(1)
--------------------------- ----------
CLERK
4
SALESMAN
4
PRESIDENT
1
MANAGER
3
ANALYST
2
6、課後練習
問題1、統計已銷戶使用者數量,請最佳化以下語句
select count(1) from ht.c_cons where status='close';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442014/viewspace-2678248/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微課sql最佳化(13)、表的連線方法(2)-基礎概念SQL
- Spark Streaming基礎概念介紹Spark
- 1、Oracle 基礎介紹Oracle
- 微課sql最佳化(17)、不改程式碼,最佳化SQL(1)-最佳化方法總結SQL
- Spring基礎只是—AOP的概念介紹Spring
- 微課sql最佳化(12)、表的連線方法(1)-幫助網友最佳化報表SQLSQL
- mysql中SQL的概念介紹MySql
- 【Kubernetes系列】第2篇 基礎概念介紹
- 微課sql最佳化(4)、幫助“表姐”最佳化報表SQL
- 1章 基礎概念
- java 基礎概念 (1)Java
- Oracle cluster table(1)_概念介紹Oracle
- OpenGL Android課程四:介紹紋理基礎Android
- Pandas基礎介紹
- Elasticsearch 基礎介紹Elasticsearch
- kafka 基礎介紹Kafka
- kafka基礎介紹Kafka
- Sql最佳化(五) hint(提示)介紹SQL
- SQL最佳化必懂概念(一):基數SQL
- 微課sql最佳化(9)、如何獲取執行計劃SQL
- 微課sql最佳化(10)、關於資料訪問方法SQL
- 微課sql最佳化(11) 、如何檢視執行計劃SQL
- 數值分析1 - 誤差概念介紹
- Dubbo入門(1) - 基礎概念
- ActiveMq的基礎介紹MQ
- MySQL 教程基礎介紹MySql
- JDBC的基礎介紹JDBC
- 基礎 RAID 介紹AI
- java基礎介紹(轉)Java
- 通俗地說決策樹演算法(一)基礎概念介紹演算法
- 微課sql最佳化(2)-為什麼需要收集統計資訊SQL
- Spark概念介紹Spark
- JavaEE概念介紹Java
- 基於pacemaker 的高可用叢集架構----1 基礎介紹架構
- OSPF介紹及基礎配置
- Django基礎教程之介紹Django
- ConstraintLayout基礎介紹AI
- Epub基礎知識介紹