<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>记忆在这里化作永恒 &#187; performance</title>
	<atom:link href="http://www.onlyring.net/tag/performance/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onlyring.net</link>
	<description>记录工作，记录生活，记录一切值得留下的东西...</description>
	<lastBuildDate>Tue, 10 May 2011 04:21:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>PL/SQL lock timer-译文</title>
		<link>http://www.onlyring.net/2008/06/23/oracle-rdbms/plsqllocktimer-yiwen.html</link>
		<comments>http://www.onlyring.net/2008/06/23/oracle-rdbms/plsqllocktimer-yiwen.html#comments</comments>
		<pubDate>Mon, 23 Jun 2008 15:41:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Oracle RDBMS]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.onlyring.net/2008/06/23/oracle-rdbms/plsqllocktimer-yiwen.html</guid>
		<description><![CDATA[<p>原文：PL/SQL lock timer</p>
<p>定义：PL/SQL lock timer等待事件(Wait-Event)表示用户（应用）通过调用USER_LOCKER.SLEEP或者DBMS_LOCK.SLEEP 存储过程需要消耗的总的睡眠时间。

通过研究Oracle等待事件，我们发现这些事件的大部分(lion&#8217;s share)时间都花在那些消耗系统资源或者用户(应用)的争用上。
这些资源包括额外的(excessive)CUP,内存，磁盘的使用，那些用于ORACLE内部结构的事件，如latchs或者quences也是关注的重点。
就像这个名字所说的那样:Wait-Event,用户(或者应用)在等待某些事情完成，然后继续它们的工作。系统资源的争用会降低ORACLE
及时处理SQL的能力，这些需要使用资源的等待最终导致应用处理时间的累积。</p>
<p>还有一类等待事件被称为空闲等待事件(idel events)。这些事件并不是真正的在等待资源的使用，而是在进行应用所要求的等待。
很多oracle 性能优化者甚至都不会去看这些空闲等待时间，因为这些事件更本不会消耗系统资源，当然也不会降低Oracle事务处理能力。
甚至有些人认为这些空闲等待事件更本没有任何有用的信息。其实，这并不完全正确。以&#8221;SQL*Net message from client&#8221;为例，
这个空闲等待时间并不会降低ORACLE的事务处理性能，但是这意味着比较差的客户端响应。</p>
<p>空闲等待事件&#8221;PL/SQL lock timer&#8221;是一个值得我们注意的事件，因为它意味着应用的响应时间，吞吐量。甚至有可能是编码有问题。
&#8220;PL/SQL lock timer&#8221; 事件是由应用程序所要求的等待，这个时候应用程序并没有做任何工作。这就意味着，如果应用程序睡眠5分钟，
那么对客户端的响应或者完成应用程序的运行至少要等待5分钟。</p>
<p>虽然这个事件并不要求系统资源，不是一个oracle资源争用的问题，但是有我们有必要给用户提供具有快速响应能力的应用。
在大多数情况下，睡眠(sleep)被放在应用中用于事务的串行化处理或者放在队列中直到等待的事情发生。我们需要知道为什么应用需要睡眠(sleep),
是否有可以替代的方法。如果能用触发某个事件的办法来替代等待事件，那么你将可以获得更快的响应。</p>
<p>如何查看PL/SQL lock timer 事件</p>
<p>让当前SESSION 等待5秒</p>

?View Code SQL1
SQL&#62; execute sys.dbms_lock.sleep&#40;5&#41;;

<p>查看当前正在使用SLEEP命令的SESSION。注意在V$SESSION 视图中的P1列不是代表SESSION已经睡眠的时间而是指这个SESSION将要持续的睡眠时间。
这个列的单位是厘秒(centiseconds)，因此5秒在就被转换为500厘秒。</p>

?View Code SQL1
SQL&#62; SELECT osuser,event,p1 FROM v$session WHERE event='PL/SQL lock timer'

<p>如果你想看某个等待事件已经等待的累计实际，你可以查看V$SYSTEM_EVENT视图。注意，这个视图的等待时间单位也是厘秒。而且你可以发现实际等待
的时间可能比期望的要多。</p>

?View Code SQL1
SQL&#62; SELECT time_waited FROM v$system_event where event='PL/SQL lock timer';

<p>结论
即便&#8221;PL/SQL lock timer&#8221;等待事件被视为一个空闲事件，如果应用在等待这个事件的话，终端用户也不得不等待。DBA的职责是通过减少应用所运行的时间
来增加ORACLE 引擎的吞吐量。不管应用是的等待时间是花在一个空闲事件还是花在资源的等待方面。我们需要找出这些等待事件，评估它们对系统带来的影响，
提供一个可以被用户接受的数据库系统环境。</p>
]]></description>
		<wfw:commentRss>http://www.onlyring.net/2008/06/23/oracle-rdbms/plsqllocktimer-yiwen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的blog我做主-网站优化篇</title>
		<link>http://www.onlyring.net/2008/06/14/web/wodeblogwozuozhu-wangzhanyouhuapian.html</link>
		<comments>http://www.onlyring.net/2008/06/14/web/wodeblogwozuozhu-wangzhanyouhuapian.html#comments</comments>
		<pubDate>Sat, 14 Jun 2008 17:14:35 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.onlyring.net/2008/06/14/web/wodeblogwozuozhu-wangzhanyouhuapian.html</guid>
		<description><![CDATA[<p>网站的优化终于告以段落，对于我这个不懂PHP，CSS，HTML的人来说，这个人来说是比较艰巨的。但是搜索引擎又证明了它的无所不能，在网上漫游了n长时间，找了一堆自己都快理不清的资料后，一个一个的尝试。
最后主要做了一下几件事情：

1.手工把所有的js和css文件压缩一遍
js用的是ShrinkSafe，开始用过Code and Coffee,Javascript compressor，结果都以失败告终。原因是这两个工具把我的代码压缩过头了，多删除了很多分号，输入代码128个分号，输出结果只有72个了。不知道是不是我不会用。用ShrinkSafe压缩了10来个js，一个都没有出错，网上也有人说这个工具一点都不safe，不过对于我来说已经够了。
css的压缩没有遇到什么问题，随便找了一个CSS drive上的在线工具CSS Compressor。</p>
<p>2.合并js和css
js合并采用了阅微堂的方法，建了一个all.js.php文件，修改header.php。
css合并以失败告终。不管是copy css代码合并到一个文件还是建立all.css.php文件再调用页面显示都有点问题。
可能是我太菜了吧，只能等我在这方面成长一点再来搞了。</p>
<p>3.gzip压缩
据说dream host 的gzip不会压缩css和js文件(阅微堂堂主言)。而我的主题又是基于ext架构，所以该死的js文件特别大。我在我的all.js.php文件前面加了一段代码，摘自网络:
效果还不错的说。不知道这段代码能不能用在css上？</p>

?View Code PHP1
2
3
4
5
6
7
8
9
10
ob_start('ob_gzhandler');
header(&#34;Cache-Control: public&#34;);
header(&#34;Pragma: cache&#34;);
$offset = 60*60*24*60;
$ExpStr = &#34;Expires: &#34;.gmdate(&#34;D, d M Y H:i:s&#34;,time() + $offset).&#34; GMT&#34;;
$LmStr = &#34;Last-Modified: &#34;.gmdate(&#34;D, d M Y H:i:s&#34;,filemtime(__FILE__)).&#34; GMT&#34;;
header($ExpStr);
header($LmStr);
header('Content-Type: text/javascript; charset: UTF-8');
?&#38;gt;;

<p>4.开启1blog cacher插件，这个插件用起来真是挺方便的，效果好像是有一点的。</p>
<p>折腾了一天也就做了这些，速度还是不理想，一点都没有成就感，:(。到了半夜，楼上也在折腾，床在发出痛苦又诱人的呻吟&#8230;</p>
]]></description>
		<wfw:commentRss>http://www.onlyring.net/2008/06/14/web/wodeblogwozuozhu-wangzhanyouhuapian.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

