📄 oracle常见问题常用技巧-7.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#000000" text="#FFFFFF">
可以看到,它读取了7000个数据块来获得所查询的 6000多行。
<p>现在,去掉这两个单列索引,增加一个复合索引I_mytabs_test ( coid, issuedate), 重新执行,结果如下:</p>
<p>COUNT(1)</p>
<p>----------</p>
<p>6436</p>
<p>Execution Plan</p>
<p>----------------------------------------------------------</p>
<p>0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=11)</p>
<p>1 0 SORT (AGGREGATE)</p>
<p>2 1 INDEX (RANGE SCAN) OF 'I_MYTABS_TEST' (NON-UNIQUE) (Cost=3 Card=126 Bytes=1386)</p>
<p>Statistics</p>
<p>----------------------------------------------------------</p>
<p>806 recursive calls</p>
<p>5 db block gets</p>
<p>283 consistent gets</p>
<p>76 physical reads</p>
<p>0 redo size</p>
<p>293 bytes sent via SQL*Net to client</p>
<p>359 bytes received via SQL*Net from client</p>
<p>2 SQL*Net roundtrips to/from client</p>
<p>3 sorts (memory)</p>
<p>0 sorts (disk)</p>
<p>1 rows processed</p>
<p>可以看到,这次只读取了300个数据块。</p>
<p>7000块对300块,这就是在这个例子中,单列索引与复合索引的代价之比。这个例子提示我们,在许多情况下,单列索引不如复合索引有效率。 </p>
<p>可以说,在索引的设置问题上,其实有许多工作可以做。正确地设置索引,需要对应用进行总体的分析</p>
<p> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -