在AnySQL.net中搜索标签(Tags) '绑定变量' 的结果:
少量记录内存排序的成本好象很底......
前面遇到一个排序的问题后, 昨天在数据库中做一了下调优, 将数据库的内存排序的次数从每秒的550次减少到330次左右, 并临控数据库的负荷, 很失望地发现对于降底数据库的负荷并没有什么作用, 甚至于还变高了一些, 由于没有发现明显的效果, 因此马上取消了所有的调优操作, 返回到原来的状态. 今天早上一来, 就做了以下测试, 首先是不需要排序时的情况: ASQL> @TEST.SQL ASQL> BEGIN /* Test no sorting */ 2 FOR I IN 1..10000 LOOP 3 FOR REC...
OLTP系统中避免不必要的排序的重要性
就前一篇中的例子, 来作一下10046的跟踪, 看看排序倒底占据了多少的CPU. 我一直是认为就算几条记录的排序也是有代价的, 至少它需要去准备一块排序区, 并运行排序的算法. 有时数据库系统中每秒种会有上千次的内存排序, 这时如果将排序的次数减少到一半, 机器的负荷会下降多少呢? 对于排序没有直接的印象, 不象对于逻辑读那么熟悉. 就等着一步一步研究吧? 先来看一下分区列上用绑定变量(有排序)时的情况: SELECT * FROM TEST_SORT WHERE COL2=:p_co1 AND PKEY=:p_key AND COL1 IN (810,510,210) ORDER BY COL1 Rows Row Source Operation ------- ...
分区列上的绑定变量与排序的一点关系
大量的排序操作会占用大量的CPU资源, 即便是内存中的排序. 通常我们可以用索引来 避免排, 但在分区表上, 就有些区别了. 下面是我做的一个测试例子, 你会知道在分区列上使用绑定变量 时会引起不必要的排序. 虽然在这个例子中用不用绑定变量都很明显地只访问一个分区, 但是Oracle还是 在用绑定变量时进行了不必要的排序. 因此Oracle有时是笨得可爱. 请使用下面的角本来创建测试表: CREATE TABLE TEST_SORT ( COL1 NUMBER, COL2 NUMBER, pkey number, col3 varchar2(30) ) partition by range(pkey) ( ...
站内搜索 | Search
总数: 540 | 留言: 1711
- Name: Fangxin Lou
- MSN: anysql©live.com
- Mail:anysql©yahoo.com
anysql©gmail.com - Skype: anysql
- AIM: loufangxin
- Mobile:008615925611590
分类 | Categories
软件下载:
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql