楼主: lfree

再问系统表dual的问题

[复制链接]
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
41#
发表于 2006-3-12 11:23 | 只看该作者
景仰一下

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
42#
 楼主| 发表于 2006-3-13 08:19 | 只看该作者
但是还有4个  db block gets,也就是有5个逻辑读。
而使用索引仅仅1个逻辑读。

实际上我想讲的是如果表很小字段不超出索引的限制,程序又经常访问,
并且这种表大部分是只读的(没有insert,update),完全可以建立一个全
字段的索引来减小逻辑读。这个是我的主要观点。

解决dual的索引问题并不重要(可惜没有人解决)。

使用道具 举报

回复
论坛徽章:
18
ITPUB元老
日期:2005-02-28 12:57:002010年世界杯参赛球队:南非
日期:2010-04-19 12:17:452010新春纪念徽章
日期:2010-03-01 11:05:01生肖徽章2007版:牛
日期:2009-11-02 17:04:55祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:兔
日期:2008-09-22 19:33:40奥运会纪念徽章:蹦床
日期:2008-09-09 11:00:24奥运会纪念徽章:跳水
日期:2008-06-16 06:59:25ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44数据库板块每日发贴之星
日期:2007-10-08 01:03:42
43#
发表于 2006-3-13 08:24 | 只看该作者
最初由 lfree 发布
[B]但是还有4个  db block gets,也就是有5个逻辑读。
而使用索引仅仅1个逻辑读。

实际上我想讲的是如果表很小字段不超出索引的限制,程序又经常访问,
并且这种表大部分是只读的(没有insert,update),完全可以建立一个全
字段的索引来减小逻辑读。这个是我的主要观点。

解决dual的索引问题并不重要(可惜没有人解决)。 [/B]


删了dual,建立iot

使用道具 举报

回复
招聘 : 系统架构师
论坛徽章:
372
双子座
日期:2015-08-18 12:18:21摩羯座
日期:2015-09-20 17:10:27秀才
日期:2015-09-21 09:46:16秀才
日期:2015-09-21 11:16:42秀才
日期:2015-10-08 17:57:58天枰座
日期:2015-10-28 18:28:29秀才
日期:2015-11-11 09:48:44秀才
日期:2015-11-11 10:07:14秀才
日期:2015-11-11 10:22:49秀才
日期:2015-09-11 10:43:06
44#
发表于 2006-3-13 08:52 | 只看该作者
最初由 Toms_zhang 发布
[B]

你现在主要负责什么? 多和你切磋切磋 [/B]
负责SQL SERVER的管理,并照顾我

使用道具 举报

回复
论坛徽章:
52
ITPUB元老
日期:2006-02-14 08:33:40现任管理团队成员
日期:2011-05-07 01:45:08
45#
发表于 2006-3-13 08:53 | 只看该作者
这个问题有意思,我同样也认为建立iot方式的dual更有效果:

SQL> connect scott
Enter password:
Connected.
SQL> create table my_dual (dummy varchar2(1) primary key) organization index;

Table created.

SQL> insert into my_dual values('X');

1 row created.

SQL> commit;

Commit complete.

SQL> analyze table my_dual compute statistics
  2  for table
  3  for all indexes
  4  for all indexed columns;

Table analyzed.

SQL> set autotrace on
SQL> select sysdate from my_dual;

SYSDATE
---------
13-MAR-06

1 row selected.


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=1)
   1    0   INDEX (FULL SCAN) OF 'SYS_IOT_TOP_31083' (UNIQUE) (Cost=1
          Card=1)





Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          1  consistent gets
          0  physical reads
          0  redo size
        387  bytes sent via SQL*Net to client
        503  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL> select sysdate from dual;

SYSDATE
---------
13-MAR-06

1 row selected.


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   TABLE ACCESS (FULL) OF 'DUAL'




Statistics
----------------------------------------------------------
          0  recursive calls
          2  db block gets
          1  consistent gets
          0  physical reads
          0  redo size
        387  bytes sent via SQL*Net to client
        503  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL>

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
46#
 楼主| 发表于 2006-3-13 08:57 | 只看该作者
这样的话,以后还是自己建立自己的dual表把。
^_^。

使用道具 举报

回复
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
47#
发表于 2006-3-13 08:59 | 只看该作者
学习~

使用道具 举报

回复
论坛徽章:
52
ITPUB元老
日期:2006-02-14 08:33:40现任管理团队成员
日期:2011-05-07 01:45:08
48#
发表于 2006-3-13 09:00 | 只看该作者
最初由 lfree 发布
[B]这样的话,以后还是自己建立自己的dual表把。
^_^。 [/B]


dual真是一个问题,每天都执行几十至百万次,我认为建立自己的dual会更有效果,同样把它cache到内存中去

使用道具 举报

回复
论坛徽章:
18
ITPUB元老
日期:2005-02-28 12:57:002010年世界杯参赛球队:南非
日期:2010-04-19 12:17:452010新春纪念徽章
日期:2010-03-01 11:05:01生肖徽章2007版:牛
日期:2009-11-02 17:04:55祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:兔
日期:2008-09-22 19:33:40奥运会纪念徽章:蹦床
日期:2008-09-09 11:00:24奥运会纪念徽章:跳水
日期:2008-06-16 06:59:25ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44数据库板块每日发贴之星
日期:2007-10-08 01:03:42
49#
发表于 2006-3-13 09:03 | 只看该作者
在并发的时候建立dual有风险,最好在没有任务没有job的时候建立,10处理很好,只要不是select *,就是一个类似函数的fast dual

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
50#
 楼主| 发表于 2006-3-13 09:07 | 只看该作者
最初由 hrb_qiuyb 发布
[B]

dual真是一个问题,每天都执行几十至百万次,我认为建立自己的dual会更有效果,同样把它cache到内存中去 [/B]


同感,总算有人站在自己这边,问题出在程序的滥用。
如果没有建立索引的问题,我觉得建立索引实际上是一个不错的选择。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表