Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100861556
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-15 13:14:47

   来源:赛迪网技术社区    作者:yuanshen

索引计数和性能

回到70年代,开发者指南基本上说不要在一个表上建立4到5个索引。今天,开发者指南上的注释如下:

Oracle不限制在一个表上建立索引的个数。尽管如此,你需要考虑索引所带来的性能改善,以及你的数据库应用程序的实际需要,从而决定需要对哪些列建立索引。

事实是:每个Oracle应用程序表可能包含30多个索引。如果我们加入一个索引能将经常需要的SQL语句的输入输出减少,我们会不考虑高索引计数的问题而加入这个索引。

CPU

减小并发管理池的宽度,至今我们还没发现这会阻塞任务的进行。我们经常会看到的情景是:减小并发管理池的宽度实际上增加了批处理任务的吞吐量,它也使CPU不那么忙碌。有许多包含对等进程的任务必须被完成。如果一个任务的池宽度过窄,所需的任务可能永远也得不到处理,从而阻塞整体任务。

我们和Oracle应用程序安装小组、培训者打过交道,他们喜欢增加并发管理池的宽度,而无视对CPU的影响,这种设置一直保持到产品发布时仍然存在。在训练和测试环境中,安全问题的大门是开着的,并且安装者增加并发管理池的宽度以期望他们的批处理任务可以尽早完成。他们这样做或许根本没有考虑到对CPU的影响,CPU可能会因此而被完全占用。

CPU运行队列不应该比你的CPU计数的两倍还深。如果CPU在一天中被经常性完全占用,就必须放弃某些设置。寻找这个需要被放弃的设置的第一位置就应该是并发管理池。

阅读(196) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~