问题描述
假设我有一个名为account_detail的客户帐户详细信息的表。
这个表包含100,000,000行。
假设我们在此表上触发select查询,同时可能会或可能不会被人员插入或更新或删除记录。
所以
问题:-
1) Is it possible to decrease the performance of the database as well table al所以?
2) 我们如何关注这些事件或相关会话级别的信息?
3) DML操作开火时如何获得最佳性能?
在第一个问题中,假设我们的多个客户端访问或更新相同的数据,然后会话事件我看到v $ 会话视图的 “enq-TM和enq-TX concention” 事件。
Ans I want to how to increase the maximum performance 所以 client will be HAPPY.
这个表包含100,000,000行。
假设我们在此表上触发select查询,同时可能会或可能不会被人员插入或更新或删除记录。
所以
问题:-
1) Is it possible to decrease the performance of the database as well table al所以?
2) 我们如何关注这些事件或相关会话级别的信息?
3) DML操作开火时如何获得最佳性能?
在第一个问题中,假设我们的多个客户端访问或更新相同的数据,然后会话事件我看到v $ 会话视图的 “enq-TM和enq-TX concention” 事件。
Ans I want to how to increase the maximum performance 所以 client will be HAPPY.
专家解答
影响性能的事情很简单:
1-做得太多,或者
2-不允许工作
有了1,如果您的服务器可以支持50个人运行繁忙的查询,那么一旦您达到51个人... 那么对于每个人来说,性能都会降低很小的幅度。通常情况下,容量越多,性能下降的速度就越快,即,这不是线性减速,而是指数下降。关键指标通常是服务器上的平均活动会话与核心计数。这是一份很好的白皮书
http://www.oracle.com/technetwork/cn/database/diag-techniques-presentation-ow07-128491.pdf
有了2,那么如果你不能做工作,那么用户体验是一样的,即,事情看起来很慢。“无法工作” 表示您正在尝试访问资源,但已被阻止。这里明显的例子是,你想更新一行而不是其他人已经锁定。但是资源竞争也可以存在查询...如果您 (和许多其他人) 正在锤击内存中常见的块集,那么您将看到内存的争用。您开始在保护该内存或缓冲区本身的锁存器上看到争用。
在所有这些情况下,一个很好的起点是AWR报告和ASH报告。
1-做得太多,或者
2-不允许工作
有了1,如果您的服务器可以支持50个人运行繁忙的查询,那么一旦您达到51个人... 那么对于每个人来说,性能都会降低很小的幅度。通常情况下,容量越多,性能下降的速度就越快,即,这不是线性减速,而是指数下降。关键指标通常是服务器上的平均活动会话与核心计数。这是一份很好的白皮书
http://www.oracle.com/technetwork/cn/database/diag-techniques-presentation-ow07-128491.pdf
有了2,那么如果你不能做工作,那么用户体验是一样的,即,事情看起来很慢。“无法工作” 表示您正在尝试访问资源,但已被阻止。这里明显的例子是,你想更新一行而不是其他人已经锁定。但是资源竞争也可以存在查询...如果您 (和许多其他人) 正在锤击内存中常见的块集,那么您将看到内存的争用。您开始在保护该内存或缓冲区本身的锁存器上看到争用。
在所有这些情况下,一个很好的起点是AWR报告和ASH报告。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




