<?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>零点软件Studio</title>
	<atom:link href="http://blog.globstudio.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.globstudio.com</link>
	<description>专注软件开发,C++,Linux,PHP,Python</description>
	<lastBuildDate>Tue, 17 Aug 2010 02:30:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>上海医保卡的一些知识</title>
		<link>http://blog.globstudio.com/775.html</link>
		<comments>http://blog.globstudio.com/775.html#comments</comments>
		<pubDate>Tue, 17 Aug 2010 02:30:53 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[简单生活]]></category>
		<category><![CDATA[保险]]></category>
		<category><![CDATA[医保]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=775</guid>
		<description><![CDATA[上海医保卡的一些知识
1，医保卡与社保卡
只有具有本地户口的人才可以有社保卡，外来务工人员只能使用医保卡即社保（医疗专用）卡
2，浦东地区哪里办理
张杨路3059号。带身份证就办。可以代办，代办同时需要代办人的身份证
如果在张江镇附近的话，可以去孙桥路185号，不过这里只是代办，三天之后才能取

3，医保卡怎么样
其实就像储蓄卡，丫的看病买药时刷卡就可以
4，是否全国通用
不是全国通用哦，如果在上海办就只能在上海用
5，如何查询余额
据说ATM上就可以查，我没试过
]]></description>
			<content:encoded><![CDATA[<p>上海医保卡的一些知识</p>
<p>1，医保卡与社保卡<br />
只有具有本地户口的人才可以有社保卡，外来务工人员只能使用医保卡即社保（医疗专用）卡</p>
<p>2，浦东地区哪里办理<br />
张杨路3059号。带身份证就办。可以代办，代办同时需要代办人的身份证<br />
如果在张江镇附近的话，可以去孙桥路185号，不过这里只是代办，三天之后才能取<br />
<span id="more-775"></span><br />
3，医保卡怎么样<br />
其实就像储蓄卡，丫的看病买药时刷卡就可以</p>
<p>4，是否全国通用<br />
不是全国通用哦，如果在上海办就只能在上海用</p>
<p>5，如何查询余额<br />
据说ATM上就可以查，我没试过</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/775.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个很好看的进度条效果</title>
		<link>http://blog.globstudio.com/774.html</link>
		<comments>http://blog.globstudio.com/774.html#comments</comments>
		<pubDate>Wed, 04 Aug 2010 01:28:37 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[界面]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/774.html</guid>
		<description><![CDATA[
 
这个界面效果很Cool吧，我其实挺推崇QQ的用户体验的。
深感界面设计师我的弱项，哦，应该是美工是我的弱项，设计不出好看的界面。
以后多收藏一些好的用户界面吧，呵呵。
]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.globstudio.com/wp-content/uploads/2010/08/qq_process.png" alt="qq_process.PNG" height="289" width="480"/></p>
<p> <span id="more-774"></span>
<p>这个界面效果很Cool吧，我其实挺推崇QQ的用户体验的。</p>
<p>深感界面设计师我的弱项，哦，应该是美工是我的弱项，设计不出好看的界面。</p>
<p>以后多收藏一些好的用户界面吧，呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/774.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何做一个有竞争力的自动上架工具</title>
		<link>http://blog.globstudio.com/772.html</link>
		<comments>http://blog.globstudio.com/772.html#comments</comments>
		<pubDate>Fri, 30 Jul 2010 02:31:52 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[原创作品]]></category>
		<category><![CDATA[程序人生]]></category>
		<category><![CDATA[open taobao]]></category>
		<category><![CDATA[taobao]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/772.html</guid>
		<description><![CDATA[如何做一个有竞争力的自动上架工具 事实上这个自动上架工具主要是给自己用，不够，既然是淘宝API做的，并且只有发布了才能用，那么不如做一个有竞争力的，说不定可以挣点小钱 同类的产品挺多的，实际上是很简单的功能。 
原则：尽量保证简单，实用，灵活，有效，美观，精致 功能方面： 1),多个店铺 2)上架计划完全自定义，并且可以导入导出上架计划。 3)宝贝上架时间自动优化，均匀上架，不同类型商品同时上架 4)实时推荐 5)商品分布图 
界面： 菜单，工具栏，界面尽量的小巧精致简单
]]></description>
			<content:encoded><![CDATA[<p>如何做一个有竞争力的自动上架工具 <br />事实上这个自动上架工具主要是给自己用，不够，既然是淘宝API做的，并且只有发布了才能用，那么不如做一个有竞争力的，说不定可以挣点小钱 <br />同类的产品挺多的，实际上是很简单的功能。 </p>
<p>原则：尽量保证简单，实用，灵活，有效，美观，精致 <br />功能方面： <br />1),多个店铺 <br />2)上架计划完全自定义，并且可以导入导出上架计划。 <br />3)宝贝上架时间自动优化，均匀上架，不同类型商品同时上架 <br />4)实时推荐 <br />5)商品分布图 </p>
<p>界面： <br />菜单，工具栏，界面尽量的小巧精致简单</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/772.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>淘宝开发API工具</title>
		<link>http://blog.globstudio.com/771.html</link>
		<comments>http://blog.globstudio.com/771.html#comments</comments>
		<pubDate>Wed, 14 Jul 2010 15:32:00 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[opentaobao]]></category>
		<category><![CDATA[taobao]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/771.html</guid>
		<description><![CDATA[在GF的要求下，我重新开发了淘宝自动上架工具，之前用的是模拟网页提交的方式，效率不高，并且用的IE控件，用的时间长了就占用过多的内存。
这次使用淘宝开发API开发的，嗯，使用C#，感觉还不错。已经基本完成了。部分细节内容修饰一下就可以了。
目前只有自动上架功能，下一步嘛，肯定会有销售管理，和其他的功能。
淘宝客也准备做一个网站，使用PHP开发吧。
感觉自己是全能战士了，哈哈哈，PHP,C#,C,Python都做过东西了。
不错不错，继续坚持！
&#160;
淘宝箱的工具只有三次机会申请进入正式环境测试，晕，三次机会我都用完了。好吧，只能在沙箱测试了。
]]></description>
			<content:encoded><![CDATA[<p>在GF的要求下，我重新开发了淘宝自动上架工具，之前用的是模拟网页提交的方式，效率不高，并且用的IE控件，用的时间长了就占用过多的内存。</p>
<p>这次使用淘宝开发API开发的，嗯，使用C#，感觉还不错。已经基本完成了。部分细节内容修饰一下就可以了。</p>
<p>目前只有自动上架功能，下一步嘛，肯定会有销售管理，和其他的功能。</p>
<p>淘宝客也准备做一个网站，使用PHP开发吧。</p>
<p>感觉自己是全能战士了，哈哈哈，PHP,C#,C,Python都做过东西了。</p>
<p>不错不错，继续坚持！</p>
<p>&#160;</p>
<p>淘宝箱的工具只有三次机会申请进入正式环境测试，晕，三次机会我都用完了。好吧，只能在沙箱测试了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/771.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决godaddy主机访问不稳定的一个想法</title>
		<link>http://blog.globstudio.com/769.html</link>
		<comments>http://blog.globstudio.com/769.html#comments</comments>
		<pubDate>Sat, 26 Jun 2010 10:25:32 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[简单生活]]></category>
		<category><![CDATA[dnspod]]></category>
		<category><![CDATA[godaddy]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=769</guid>
		<description><![CDATA[godaddy空间最近访问很不稳定，时常无法访问，应该是电信线路问题，不对，是“墙“在搞鬼。
我的网站虽然访问量不大，可是淘宝店中的图片都用的是二级域名img.0goshopping.com下的，经常打开淘宝店铺看不到宝贝详细描述图片
我想了一个方法，还没有正式实施
1，申请google app engine，免费的，用来存放图片。写一个python应用，同步图片
2，申请dnspod，设置二级域名img.0goshopping.com，让用户轮询godaddy主机和google app engine空间
3，完成。

相关资料：
如何直接添加a.aaa.com这样的二级域名？
DNSPod不支持直接添加这种类型的二级域名（或者a.aa.aaa.com这样的三级域名），但有变通的方法实现：
你需要在DNSPod中添加aaa.com，然后添加a（或者a.aa），之后在你域名原来的控制面板为a.aaa.com（或者a.aa.aaa.com）添加6条NS类型记录，分别指向DNSPod的6台DNS服务器
以新网域名aaa.com为例，需要把a.aa.aaa.com放到DNSPod来用，并且a.aa.aaa.com指向IP 1.1.1.1：
在新网中，为aa.aaa.com添加6条NS记录，值分别为DNSPod的6台DNS服务器（ns1-ns6.dnspod.net）
在DNSPod添加域名aaa.com
在DNSPod中为aaa.com添加A记录a.aa，值为1.1.1.1
等待生效
Godaddy注册的域名如何使用DNSPod？
http://support.dnspod.com/index.php?_m=knowledgebase&#038;_a=viewarticle&#038;kbarticleid=63&#038;nav=0
如何实现域名的负载均衡
http://support.dnspod.com/index.php?_m=knowledgebase&#038;_a=viewarticle&#038;kbarticleid=16
这样可以一定程度上解决淘宝店图片无法显示的问题。
不过dnspod现在需要邀请码才可以注册，正在等邀请码
]]></description>
			<content:encoded><![CDATA[<p>godaddy空间最近访问很不稳定，时常无法访问，应该是电信线路问题，不对，是“墙“在搞鬼。<br />
我的网站虽然访问量不大，可是淘宝店中的图片都用的是二级域名img.0goshopping.com下的，经常打开淘宝店铺看不到宝贝详细描述图片<br />
我想了一个方法，还没有正式实施<br />
1，申请google app engine，免费的，用来存放图片。写一个python应用，同步图片<br />
2，申请dnspod，设置二级域名img.0goshopping.com，让用户轮询godaddy主机和google app engine空间<br />
3，完成。<br />
<span id="more-769"></span><br />
相关资料：<br />
如何直接添加a.aaa.com这样的二级域名？<br />
<em>DNSPod不支持直接添加这种类型的二级域名（或者a.aa.aaa.com这样的三级域名），但有变通的方法实现：</p>
<p>你需要在DNSPod中添加aaa.com，然后添加a（或者a.aa），之后在你域名原来的控制面板为a.aaa.com（或者a.aa.aaa.com）添加6条NS类型记录，分别指向DNSPod的6台DNS服务器</p>
<p>以新网域名aaa.com为例，需要把a.aa.aaa.com放到DNSPod来用，并且a.aa.aaa.com指向IP 1.1.1.1：<br />
在新网中，为aa.aaa.com添加6条NS记录，值分别为DNSPod的6台DNS服务器（ns1-ns6.dnspod.net）<br />
在DNSPod添加域名aaa.com<br />
在DNSPod中为aaa.com添加A记录a.aa，值为1.1.1.1<br />
等待生效</em></p>
<p>Godaddy注册的域名如何使用DNSPod？</p>
<p>http://support.dnspod.com/index.php?_m=knowledgebase&#038;_a=viewarticle&#038;kbarticleid=63&#038;nav=0</p>
<p>如何实现域名的负载均衡</p>
<p>http://support.dnspod.com/index.php?_m=knowledgebase&#038;_a=viewarticle&#038;kbarticleid=16</p>
<p>这样可以一定程度上解决淘宝店图片无法显示的问题。</p>
<p>不过dnspod现在需要邀请码才可以注册，正在等邀请码</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/769.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>【转]黑客入门教程1-57集</title>
		<link>http://blog.globstudio.com/767.html</link>
		<comments>http://blog.globstudio.com/767.html#comments</comments>
		<pubDate>Mon, 17 May 2010 01:41:48 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[网络安全]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[黑客]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=767</guid>
		<description><![CDATA[黑客入门教程1-57集

01 ping命令的使用http://images.enet.com.cn/eschool/wmv/ping.wmv
02 netstat命令的使用 http://images.enet.com.cn/eschool/wmv/netstat.wmv
03 tasklist和taskkill的使用 http://images.enet.com.cn/eschool/wmv/tasklist.wmv
04扫描器X-SCAN的使用(上) http://images.enet.com.cn/eschool/wmv/x-scan1.wmv
05扫描器X-SCAN的使用(下) http://images.enet.com.cn/eschool/wmv/x-scan2.wmv
06 先试手:Ipc漏洞 http://images.enet.com.cn/eschool/wmv/ipc.wmv
07 shed共享扫描器的使用 http://images.enet.com.cn/eschool/wmv/shed.wmv
08 superscan3扫描器的使用 http://images.enet.com.cn/eschool/wmv/superscan3.wmv
09 流光扫描器的应用 http://images.enet.com.cn/eschool/wmv/liuguan.wmv
10 win2000自动攻击器的使用 http://images.enet.com.cn/eschool/wmv/win2000.wmv
11 俄罗斯扫描器SSS简单使用 http://images.enet.com.cn/eschool/wmv/sss.wmv
12 dameware远程管理工具的使用 http://images.enet.com.cn/eschool/wmv/dameware.wmv
13 找回ADSL拨号的密码.http://images.enet.com.cn/eschool/wmv/adsl.wmv
14 缓冲区及溢出的道理视频教程 http://images.enet.com.cn/eschool/wmv/01.wmv
15 溢出例子和分析视频教程 http://images.enet.com.cn/eschool/wmv/02.wmv
16 Shellcode介绍视频教程 http://images.enet.com.cn/eschool/wmv/03.wmv
17 缓冲区溢出简单利用视频教程 http://images.enet.com.cn/eschool/wmv/04.wmv
18 构造利用视频教程 http://images.enet.com.cn/eschool/wmv/05.wmv
19 FOXMAIL漏洞编写-漏洞公告 http://images.enet.com.cn/eschool/wmv/06-1.wmv
20 FOXMAIL漏洞编写-溢出定位 http://images.enet.com.cn/eschool/wmv/06-2.wmv
21 FOXMAIL漏洞-shellcode编写 http://images.enet.com.cn/eschool/wmv/06-3.wmv
22 IIS.printer利用程序 http://images.enet.com.cn/eschool/wmv/07.wmv
23 JMPCALL EBX溢出利用方式 http://images.enet.com.cn/eschool/wmv/08s1.wmv
24JMP ESP改写 JMP EBX课程 http://images.enet.com.cn/eschool/wmv/09tr.wmv
25 IDQ-IDA漏洞利用程序编写 http://images.enet.com.cn/eschool/wmv/010.wmv
26 ShellCode的基本概念 http://images.enet.com.cn/eschool/wmv/0011.wmv
27 打开CMD的方法-1 http://images.enet.com.cn/eschool/wmv/12-1.wmv
28 打开CMD的方法-2 http://images.enet.com.cn/eschool/wmv/12-2.wmv
29 打开CMD的方法-3 [...]]]></description>
			<content:encoded><![CDATA[<p>黑客入门教程1-57集<br />
<span id="more-767"></span><br />
01 ping命令的使用http://images.enet.com.cn/eschool/wmv/ping.wmv<br />
02 netstat命令的使用 http://images.enet.com.cn/eschool/wmv/netstat.wmv<br />
03 tasklist和taskkill的使用 http://images.enet.com.cn/eschool/wmv/tasklist.wmv<br />
04扫描器X-SCAN的使用(上) http://images.enet.com.cn/eschool/wmv/x-scan1.wmv<br />
05扫描器X-SCAN的使用(下) http://images.enet.com.cn/eschool/wmv/x-scan2.wmv<br />
06 先试手:Ipc漏洞 http://images.enet.com.cn/eschool/wmv/ipc.wmv<br />
07 shed共享扫描器的使用 http://images.enet.com.cn/eschool/wmv/shed.wmv<br />
08 superscan3扫描器的使用 http://images.enet.com.cn/eschool/wmv/superscan3.wmv<br />
09 流光扫描器的应用 http://images.enet.com.cn/eschool/wmv/liuguan.wmv<br />
10 win2000自动攻击器的使用 http://images.enet.com.cn/eschool/wmv/win2000.wmv<br />
11 俄罗斯扫描器SSS简单使用 http://images.enet.com.cn/eschool/wmv/sss.wmv<br />
12 dameware远程管理工具的使用 http://images.enet.com.cn/eschool/wmv/dameware.wmv<br />
13 找回ADSL拨号的密码.http://images.enet.com.cn/eschool/wmv/adsl.wmv<br />
14 缓冲区及溢出的道理视频教程 http://images.enet.com.cn/eschool/wmv/01.wmv<br />
15 溢出例子和分析视频教程 http://images.enet.com.cn/eschool/wmv/02.wmv<br />
16 Shellcode介绍视频教程 http://images.enet.com.cn/eschool/wmv/03.wmv<br />
17 缓冲区溢出简单利用视频教程 http://images.enet.com.cn/eschool/wmv/04.wmv<br />
18 构造利用视频教程 http://images.enet.com.cn/eschool/wmv/05.wmv<br />
19 FOXMAIL漏洞编写-漏洞公告 http://images.enet.com.cn/eschool/wmv/06-1.wmv<br />
20 FOXMAIL漏洞编写-溢出定位 http://images.enet.com.cn/eschool/wmv/06-2.wmv<br />
21 FOXMAIL漏洞-shellcode编写 http://images.enet.com.cn/eschool/wmv/06-3.wmv<br />
22 IIS.printer利用程序 http://images.enet.com.cn/eschool/wmv/07.wmv<br />
23 JMPCALL EBX溢出利用方式 http://images.enet.com.cn/eschool/wmv/08s1.wmv<br />
24JMP ESP改写 JMP EBX课程 http://images.enet.com.cn/eschool/wmv/09tr.wmv<br />
25 IDQ-IDA漏洞利用程序编写 http://images.enet.com.cn/eschool/wmv/010.wmv<br />
26 ShellCode的基本概念 http://images.enet.com.cn/eschool/wmv/0011.wmv<br />
27 打开CMD的方法-1 http://images.enet.com.cn/eschool/wmv/12-1.wmv<br />
28 打开CMD的方法-2 http://images.enet.com.cn/eschool/wmv/12-2.wmv<br />
29 打开CMD的方法-3 http://images.enet.com.cn/eschool/wmv/12-3.wmv<br />
30 打开CMD的方法-4 http://images.enet.com.cn/eschool/wmv/12-4.wmv<br />
31 shellcode通用性初步探讨 http://images.enet.com.cn/eschool/wmv/0013.wmv<br />
32 Windows对话框的编写-1 http://images.enet.com.cn/eschool/wmv/014-1.wmv<br />
33 Windows对话框的编写-2 http://images.enet.com.cn/eschool/wmv/0014-2.wmv<br />
34 给系统添加用户-1 http://images.enet.com.cn/eschool/wmv/015-1.wmv<br />
35 给系统添加用户-2 http://images.enet.com.cn/eschool/wmv/00015-2.wmv<br />
36 黑客工具NC的使用教程 http://images.enet.com.cn/eschool/wmv/nc.wmv<br />
37 智能ABC和guest帐号问题 http://images.enet.com.cn/eschool/wmv/abc.wmv<br />
38 MS05039漏洞利用教程 http://images.enet.com.cn/eschool/wmv/nc.wmv<br />
39 Iris分析TCP_IP协议谈-001 http://images.enet.com.cn/eschool/wmv/Iris1.wmv<br />
40 Iris分析TCP_IP协议谈-002 http://images.enet.com.cn/eschool/wmv/Iris2.wmv<br />
41 Iris分析TCP_IP协议谈-003 http://images.enet.com.cn/eschool/wmv/Iris3.wmv<br />
42在系统中建立隐藏帐号 http://images.enet.com.cn/eschool/wmv/hideuser.wmv<br />
43 autorun介绍与利用 http://images.enet.com.cn/eschool/wmv/autorun.wmv<br />
44 iis的安全配置介绍 http://images.enet.com.cn/eschool/wmv/iis.wmv<br />
45 realplay网页木马的制作方法http://images.enet.com.cn/eschool/wmv/realplay.wmv<br />
46Radmin远程管理的配置 http://images.enet.com.cn/eschool/wmv/Radmin.wmv<br />
47 Virtual PC虚拟机的使用 http://images.enet.com.cn/eschool/wmv/virtualpc.wmv<br />
48 pstools工具包简单使用 http://images.enet.com.cn/eschool/wmv/pstools.wmv<br />
49 telnet和ntlm认证问题 http://images.enet.com.cn/eschool/wmv/telnet.wmv<br />
50堆栈和堆缓冲区溢出比较-1 http://images.enet.com.cn/eschool/wmv/dui001.wmv<br />
51 堆栈和堆缓冲区溢出比较-2 http://images.enet.com.cn/eschool/wmv/dui002.wmv<br />
52 堆栈和堆缓冲区溢出比较-3 http://images.enet.com.cn/eschool/wmv/dui003.wmv<br />
53 堆栈和堆缓冲区溢出比较-4 http://images.enet.com.cn/eschool/wmv/dui004.wmv<br />
54 简单破解Access数据库密码 http://wms1.bn.163.com/uuauth/tech/school/heike/new/Access.avi<br />
55 简单制作CHM木马 http://wms1.bn.163.com/uuauth/tech/school/heike/new/CHM.avi<br />
56 建立超级隐藏帐户 http://wms1.bn.163.com/uuauth/tech/school/heike/new/account.avi<br />
57 VMware虚拟机的安装和使用 http://wms1.bn.163.com/uuauth/tech/school/heike/new/VMware.avi</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/767.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>【图片】程序员眼中的编程语言&amp;粉丝眼中的操作系统</title>
		<link>http://blog.globstudio.com/763.html</link>
		<comments>http://blog.globstudio.com/763.html#comments</comments>
		<pubDate>Mon, 17 May 2010 01:18:47 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[程序人生]]></category>
		<category><![CDATA[程序员]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=763</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<div id="attachment_764" class="wp-caption alignnone" style="width: 310px"><a title="程序员眼中的编程语言" href="http://blog.globstudio.com/wp-content/uploads/2010/05/progameer-lanage.jpg"><img class="size-medium wp-image-764" title="progameer-lanage" src="http://blog.globstudio.com/wp-content/uploads/2010/05/progameer-lanage-300x219.jpg" alt="程序员眼中的编程语言" width="300" height="219" /></a><p class="wp-caption-text">程序员眼中的编程语言</p></div>
<p><span id="more-763"></span></p>
<div id="attachment_765" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.globstudio.com/wp-content/uploads/2010/05/osfans.jpg"><img class="size-medium wp-image-765" title="osfans" src="http://blog.globstudio.com/wp-content/uploads/2010/05/osfans-300x238.jpg" alt="粉丝眼中的操作系统" width="300" height="238" /></a><p class="wp-caption-text">粉丝眼中的操作系统</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/763.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Application Exploits and Defenses</title>
		<link>http://blog.globstudio.com/761.html</link>
		<comments>http://blog.globstudio.com/761.html#comments</comments>
		<pubDate>Thu, 13 May 2010 01:39:17 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[Mywitter]]></category>
		<category><![CDATA[网络安全]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[漏洞]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=761</guid>
		<description><![CDATA[攻击Google的Jarlsberg，学习安全漏洞知识
http://jarlsberg.appspot.com/
很多人都想知道黑客是如何攻击并进入到系统的，为了帮助他们，Google创建了一个特殊的名为Jarlsberg 的实验室，其中的应用程序满是安全漏洞，开发者可以利用它以实践的方式学习到潜在的漏洞是什么样的，恶意用户是如何利用这些漏洞的，以及如何做才能免受攻击。
这个实验室是围绕安全漏洞的不同类型来组织的，对于每个漏洞，都有找寻和攻击漏洞的任务可供完成。 该实验室使用了下列三种主要的技术：
黑盒：用户看不到应用程序的源代码，因此他们需要猜测服务器工作的方式，从而设法利用安全漏洞。
白盒：以开源应用的形式提供了源代码（Python）。 用户可以阅读代码，从而找到弱点所在。
灰盒：实验室会给出一些应用程序是如何编写的提示，但不会让用户看到完整的源代码。
Jarlsberg特意使用了大量特性，以扩大应用程序的攻击面。
]]></description>
			<content:encoded><![CDATA[<p>攻击Google的Jarlsberg，学习安全漏洞知识</p>
<p>http://jarlsberg.appspot.com/</p>
<p>很多人都想知道黑客是如何攻击并进入到系统的，为了帮助他们，Google创建了一个特殊的名为Jarlsberg 的实验室，其中的应用程序满是安全漏洞，开发者可以利用它以实践的方式学习到潜在的漏洞是什么样的，恶意用户是如何利用这些漏洞的，以及如何做才能免受攻击。</p>
<p>这个实验室是围绕安全漏洞的不同类型来组织的，对于每个漏洞，都有找寻和攻击漏洞的任务可供完成。 该实验室使用了下列三种主要的技术：</p>
<p>黑盒：用户看不到应用程序的源代码，因此他们需要猜测服务器工作的方式，从而设法利用安全漏洞。<br />
白盒：以开源应用的形式提供了源代码（Python）。 用户可以阅读代码，从而找到弱点所在。<br />
灰盒：实验室会给出一些应用程序是如何编写的提示，但不会让用户看到完整的源代码。<br />
Jarlsberg特意使用了大量特性，以扩大应用程序的攻击面。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/761.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转】Oracle数据库提高命中率及相关优化</title>
		<link>http://blog.globstudio.com/759.html</link>
		<comments>http://blog.globstudio.com/759.html#comments</comments>
		<pubDate>Fri, 23 Apr 2010 02:05:44 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=759</guid>
		<description><![CDATA[关于Oracle中各个命中率的计算以及相关的调优
1)Library Cache的命中率:
.计算公式:Library Cache Hit Ratio = sum(pinhits) / sum(pins)


SQL&#62;SELECT SUM(pinhits)/sum(pins)
FROM V$LIBRARYCACHE;


通常在98%以上，否则，需要要考虑加大共享池，绑定变量，修改cursor_sharing等参数。

2)计算共享池内存使用率:


SQL&#62;SELECT (1 - ROUND(BYTES / (&#38;TSP_IN_M * 1024 * 1024), 2)) * 100 &#124;&#124; '%'
FROM V$SGASTAT
WHERE NAME = 'free memory' AND POOL = 'shared pool';


其中: &#38;TSP_IN_M是你的总的共享池的SIZE(M)
共享池内存使用率，应该稳定在75%-90%间，太小浪费内存，太大则内存不足。
查询空闲的共享池内存:


SQL&#62;SELECT * FROM V$SGASTAT
WHERE NAME = 'free memory' AND POOL = 'shared pool';


3)db buffer cache命中率:
计算公式:Hit ratio = 1 &#8211; [physical reads/(block gets + consistent gets)]


SQL&#62;SELECT NAME, PHYSICAL_READS, DB_BLOCK_GETS, CONSISTENT_GETS,
1 - (PHYSICAL_READS / (DB_BLOCK_GETS + CONSISTENT_GETS)) "Hit Ratio"
FROM V$BUFFER_POOL_STATISTICS
WHERE NAME='DEFAULT';


通常应在90%以上，否则，需要调整,加大DB_CACHE_SIZE
另外一种计算命中率的方法(摘自ORACLE官方文档&#60;&#60;数据库性能优化&#62;&#62;):
命中率的计算公式为:


Hit Ratio = 1 - ((physical reads - physical reads direct - physical reads direct (lob)) / (db block gets +
consistent gets - physical reads direct - physical reads direct (lob))


分别代入上一查询中的结果值,就得出了Buffer cache的命中率


SQL&#62;SELECT NAME, VALUE
FROM V$SYSSTAT
WHERE NAME IN('session logical reads',
'physical reads',
'physical reads direct',
'physical reads direct (lob)',
'db block gets', 'consistent gets');


4)数据缓冲区命中率：


SQL&#62; select value from v$sysstat where name ='physical reads';
SQL&#62; select value from v$sysstat where name ='physical reads direct';
SQL&#62; select value from v$sysstat where name ='physical reads direct (lob)';
SQL&#62; select value from v$sysstat where name ='consistent gets';
SQL&#62; select value from v$sysstat where name = 'db block gets';


这里命中率的计算应该是
令 x = physical reads direct + physical reads direct (lob)
命中率 =100 &#8211; ( physical reads &#8211; x) / (consistent gets + db block gets &#8211; x)*100
通常如果发现命中率低于90%,则应该调整应用可可以考虑是否增大数据缓冲区
5)共享池的命中率：


SQL&#62; select sum(pinhits-reloads)/sum(pins)*100 "hit radio" from v$librarycache;


假如共享池的命中率低于95%,就要考虑调整应用（通常是没使用bind var ）或者增加内存
6)计算在内存中排序的比率:


SQL&#62;SELECT * FROM v$sysstat t WHERE NAME='sorts (memory)';—查询内存排序数
SQL&#62;SELECT * FROM v$sysstat t WHERE NAME='sorts (disk)';—查询磁盘排序数
--caculate sort in memory ratio
SQL&#62;SELECT round(&#38;sort_in_memory/(&#38;sort_in_memory+&#38;sort_in_disk),4)*100&#124;&#124;'%' FROM dual;


此比率越大越好,太小整要考虑调整,加大PGA
7)PGA的命中率:
计算公式:BP x 100 / (BP [...]]]></description>
			<content:encoded><![CDATA[<p>关于Oracle中各个命中率的计算以及相关的调优</p>
<p><strong>1)Library Cache的命中率:</strong></p>
<p>.计算公式:Library Cache Hit Ratio = sum(pinhits) / sum(pins)</p>
<pre>
<ol>
<li>SQL&gt;SELECT SUM(pinhits)/sum(pins)</li>
<li>FROM V$LIBRARYCACHE;</li>
</ol>
</pre>
<p>通常在98%以上，否则，需要要考虑加大共享池，绑定变量，修改cursor_sharing等参数。<br />
<span id="more-759"></span><br />
<strong>2)计算共享池内存使用率:</strong></p>
<pre>
<ol>
<li>SQL&gt;SELECT (1 - ROUND(BYTES / (&amp;TSP_IN_M * 1024 * 1024), 2)) * 100 || '%'</li>
<li>FROM V$SGASTAT</li>
<li>WHERE NAME = 'free memory' AND POOL = 'shared pool';</li>
</ol>
</pre>
<p>其中: &amp;TSP_IN_M是你的总的共享池的SIZE(M)</p>
<p>共享池内存使用率，应该稳定在75%-90%间，太小浪费内存，太大则内存不足。</p>
<p>查询空闲的共享池内存:</p>
<pre>
<ol>
<li>SQL&gt;SELECT * FROM V$SGASTAT</li>
<li>WHERE NAME = 'free memory' AND POOL = 'shared pool';</li>
</ol>
</pre>
<p><strong>3)db buffer cache命中率:</strong></p>
<p>计算公式:Hit ratio = 1 &#8211; [physical reads/(block gets + consistent gets)]</p>
<pre>
<ol>
<li>SQL&gt;SELECT NAME, PHYSICAL_READS, DB_BLOCK_GETS, CONSISTENT_GETS,</li>
<li>1 - (PHYSICAL_READS / (DB_BLOCK_GETS + CONSISTENT_GETS)) "Hit Ratio"</li>
<li>FROM V$BUFFER_POOL_STATISTICS</li>
<li>WHERE NAME='DEFAULT';</li>
</ol>
</pre>
<p>通常应在90%以上，否则，需要调整,加大DB_CACHE_SIZE</p>
<p>另外一种计算命中率的方法(摘自ORACLE官方文档&lt;&lt;数据库性能优化&gt;&gt;):</p>
<p>命中率的计算公式为:</p>
<pre>
<ol>
<li>Hit Ratio = 1 - ((physical reads - physical reads direct - physical reads direct (lob)) / (db block gets +</li>
<li>consistent gets - physical reads direct - physical reads direct (lob))</li>
</ol>
</pre>
<p>分别代入上一查询中的结果值,就得出了Buffer cache的命中率</p>
<pre>
<ol>
<li>SQL&gt;SELECT NAME, VALUE</li>
<li>FROM V$SYSSTAT</li>
<li>WHERE NAME IN('session logical reads',</li>
<li>'physical reads',</li>
<li>'physical reads direct',</li>
<li>'physical reads direct (lob)',</li>
<li>'db block gets', 'consistent gets');</li>
</ol>
</pre>
<p><strong>4)数据缓冲区命中率：</strong></p>
<pre>
<ol>
<li>SQL&gt; select value from v$sysstat where name ='physical reads';</li>
<li>SQL&gt; select value from v$sysstat where name ='physical reads direct';</li>
<li>SQL&gt; select value from v$sysstat where name ='physical reads direct (lob)';</li>
<li>SQL&gt; select value from v$sysstat where name ='consistent gets';</li>
<li>SQL&gt; select value from v$sysstat where name = 'db block gets';</li>
</ol>
</pre>
<p>这里命中率的计算应该是</p>
<p>令 x = physical reads direct + physical reads direct (lob)</p>
<p>命中率 =100 &#8211; ( physical reads &#8211; x) / (consistent gets + db block gets &#8211; x)*100</p>
<p>通常如果发现命中率低于90%,则应该调整应用可可以考虑是否增大数据缓冲区</p>
<p><strong>5)共享池的命中率：</strong></p>
<pre>
<ol>
<li>SQL&gt; select sum(pinhits-reloads)/sum(pins)*100 "hit radio" from v$librarycache;</li>
</ol>
</pre>
<p>假如共享池的命中率低于95%,就要考虑调整应用（通常是没使用bind var ）或者增加内存</p>
<p><strong>6)计算在内存中排序的比率:</strong></p>
<pre>
<ol>
<li>SQL&gt;SELECT * FROM v$sysstat t WHERE NAME='sorts (memory)';—查询内存排序数</li>
<li>SQL&gt;SELECT * FROM v$sysstat t WHERE NAME='sorts (disk)';—查询磁盘排序数</li>
<li>--caculate sort in memory ratio</li>
<li>SQL&gt;SELECT round(&amp;sort_in_memory/(&amp;sort_in_memory+&amp;sort_in_disk),4)*100||'%' FROM dual;</li>
</ol>
</pre>
<p>此比率越大越好,太小整要考虑调整,加大PGA</p>
<p><strong>7)PGA的命中率:</strong></p>
<p>计算公式:BP x 100 / (BP + EBP)</p>
<p>BP: bytes processed</p>
<p>EBP: extra bytes read/written</p>
<pre>
<ol>
<li>SQL&gt;SELECT * FROM V$PGASTAT  WHERE NAME='cache hit percentage';</li>
</ol>
</pre>
<p>或者从OEM的图形界面中查看</p>
<p>我们可以查看一个视图以获取Oracle的建议值:</p>
<pre>
<ol>
<li>SQL&gt;SELECT round(PGA_TARGET_FOR_ESTIMATE/1024/1024) target_mb,</li>
<li>ESTD_PGA_CACHE_HIT_PERCENTAGE cache_hit_perc,</li>
<li>ESTD_OVERALLOC_COUNT</li>
<li>FROM V$PGA_TARGET_ADVICE;</li>
<li>The output of this query might look like the following:</li>
<li>TARGET_MB  CACHE_HIT_PERC  ESTD_OVERALLOC_COUNT</li>
<li>----------           --------------        --------------------</li>
<li>   63              23                   367</li>
<li>  125              24                    30</li>
<li>  250              30                     3</li>
<li>  375              39                     0</li>
<li>  500              58                     0</li>
<li>  600              59                     0</li>
<li>  700              59                     0</li>
<li>  800              60                     0</li>
<li>  900              60                     0</li>
</ol>
</pre>
<p>在此例中:PGA至少要分配375M</p>
<p>我个人认为PGA命中率不应该低于50%</p>
<p>以下的SQL统计sql语句执行在三种模式的次数: optimal memory size, one-pass memory size, multi-pass memory size:</p>
<pre>
<ol>
<li>SQL&gt;SELECT name profile, cnt, decode(total, 0, 0, round(cnt*100/total,4)) percentage</li>
<li>FROM (SELECT name, value cnt, (sum(value) over ()) total FROM V$SYSSTAT WHERE name like 'workarea exec%');</li>
</ol>
</pre>
<p><strong>8)共享区字典缓存区命中率</strong></p>
<p>计算公式：SUM(gets &#8211; getmisses &#8211; usage -fixed) / SUM(gets)</p>
<p>命中率应大于0.85</p>
<pre>
<ol>
<li>SQL&gt;select sum(gets-getmisses-usage-fixed)/sum(gets)</li>
<li>from v$rowcache;</li>
</ol>
</pre>
<p><strong>9)数据高速缓存区命中率</strong></p>
<p>计算公式：1-(physical reads / (db block gets + consistent gets))</p>
<p>命中率应大于0.90最好</p>
<pre>
<ol>
<li>SQL&gt;select name,value</li>
<li>from v$sysstat</li>
<li>where name in ('physical reads','db block gets','consistent gets');</li>
</ol>
</pre>
<p><strong>10)共享区库缓存区命中率</strong></p>
<p>计算公式：SUM(pins &#8211; reloads) / SUM(pins)</p>
<p>命中率应大于0.99</p>
<pre>
<ol>
<li>SQL&gt;select sum(pins-reloads)/sum(pins)</li>
<li>from v$librarycache;</li>
</ol>
</pre>
<p><strong>11)检测回滚段的争用</strong></p>
<p>SUM(waits)值应小于SUM(gets)值的1%</p>
<pre>
<ol>
<li>SQL&gt;select sum(gets),sum(waits),sum(waits)/sum(gets)</li>
<li>from v$rollstat;</li>
</ol>
</pre>
<p><strong>12)检测回滚段收缩次数</strong></p>
<pre>
<ol>
<li>SQL&gt;select name,shrinks</li>
<li>from v$rollstat, v$rollname</li>
<li>where v$rollstat.usn = v$rollname.usn;</li>
<li>-----------------------------------------------------------------------------</li>
</ol>
</pre>
<p>几个常用的检查语句</p>
<p>1. 查找排序最多的SQL:</p>
<pre>
<ol>
<li>SQL&gt;SELECT HASH_VALUE, SQL_TEXT, SORTS, EXECUTIONS</li>
<li>FROM V$SQLAREA</li>
<li>ORDER BY SORTS DESC;</li>
</ol>
</pre>
<p>2.查找磁盘读写最多的SQL:</p>
<pre>
<ol>
<li>SQL&gt;SELECT * FROM</li>
<li>(SELECT sql_text,disk_reads "total disk" , executions "total exec",disk_reads/executions "disk/exec" FROM v$sql</li>
<li>WHERE executions&gt;0 and is_obsolete='N' ORDER BY  4 desc)</li>
<li>WHERE ROWNUM&lt;11 ;</li>
</ol>
</pre>
<p>3.查找工作量最大的SQL(实际上也是按磁盘读写来排序的):</p>
<pre>
<ol>
<li>SQL&gt;select substr(to_char(s.pct, '99.00'), 2) || '%' load,s.executions executes,p.sql_text</li>
<li>from(select address,disk_reads,executions,pct,rank() over (order by disk_reads desc) ranking from</li>
<li>(select address,disk_reads,executions,100 * ratio_to_report(disk_reads) over () pct</li>
<li>from sys.v_$sql</li>
<li> where command_type != 47)</li>
<li>where disk_reads &gt; 50 * executions) s,sys.v_$sqltext p</li>
<li> where s.ranking &lt;= 5 and p.address = s.address</li>
<li>order by 1, s.address, p.piece;</li>
</ol>
</pre>
<p>4. 用下列SQL工具找出低效SQL:</p>
<pre>
<ol>
<li>SQL&gt;select executions,disk_reads,buffer_gets,round((buffer_gets-disk_reads)/buffer_gets,2) Hit_radio,round(disk_reads/executions,2) reads_per_run,sql_text</li>
<li>From v$sqlarea</li>
<li>Where executions&gt;0 and buffer_gets &gt;0 and (buffer_gets-disk_reads)/buffer_gets&lt;0.8</li>
<li>Order by 4 desc;</li>
</ol>
</pre>
<p>5、根据sid查看对应连接正在运行的sql</p>
<pre>
<ol>
<li>SQL&gt;select /*+ push_subq */command_type,sql_text,sharable_mem,persistent_mem,</li>
<li>runtime_mem,sorts,version_count,loaded_versions,open_versions,users_opening,executions,</li>
<li>users_executing,loads,first_load_time,invalidations,parse_calls,disk_reads,buffer_gets,</li>
<li>rows_processed,sysdate start_time,sysdate finish_time,’&gt;’||address sql_address,’N’status</li>
<li>From v$sqlarea</li>
<li>Where address=(select sql_address from v$session where sid=&amp;sid);</li>
<li>***************Oracle 缓冲区命中率低的分析及解决办法******************</li>
</ol>
</pre>
<p>首先确定下面的查询结果:</p>
<p>1,缓冲区命中率的查询(是否低于90%):</p>
<pre>
<ol>
<li>select round((1 - sum(decode(name,'physical reads',value,0)) /</li>
<li>(sum(decode(name,'db block gets',value,0)) + sum(decode(name,'consistent gets',value,0))) ),4) *100 || '%' chitrati</li>
<li>from v$sysstat;</li>
</ol>
</pre>
<p>2,使用率的查询(有无free状态的数据快.):</p>
<pre>
<ol>
<li>select count(*), status from v$bh group by status ;</li>
</ol>
</pre>
<p>3,相关等待事件的查询(是否有相关等待事件)</p>
<pre>
<ol>
<li>select event,total_waits from v$system_event where event in ('free buffer waits');</li>
</ol>
</pre>
<p>4,当前大小(是否已经很大)</p>
<pre>
<ol>
<li>select value/1024/1024 cache_size from v$parameter where name='db_cache_size'</li>
</ol>
</pre>
<p>5,top等待事件分析(Db file scatered read的比率是否大)</p>
<pre>
<ol>
<li>select event ,total_waits,suml</li>
<li>from</li>
<li>(select event,total_waits,round(total_waits/sumt*100,2)||'%' suml</li>
<li>from</li>
<li>(select event,total_waits from v$system_event ),</li>
<li>(select sum(total_waits) sumt from v$system_event)</li>
<li>order by total_waits desc)</li>
<li>where rownum&lt;6</li>
<li>and event not like 'rdbms%'</li>
<li>and event not like 'pmon%'</li>
<li>and event not like 'SQL*Net%'</li>
<li>and event not like 'smon%';</li>
</ol>
</pre>
<p>6,db_cache_advice建议值（9i后的新特性,可以根据他更好的调整cache_size）</p>
<pre>
<ol>
<li>select block_size,size_for_estimate,size_factor,estd_physical_reads from v$db_cache_advice;</li>
</ol>
</pre>
<p>说明分析:</p>
<p>缓冲区命中率(低于90的命中率就算比较低的).</p>
<p>没有free不一定说明需要增加,还要结合当前cache_size的大小(我们是否还可以再增大,是否有需要增加硬件,增加开销),<br />
空闲缓冲区等待说明进程找不到空闲缓冲区，并通过写出灰缓冲区，来加速数据库写入器生成空闲缓冲区，当DBWn将块写入磁盘后，灰数据缓冲区将被释放，以便重新使用.产生这种原因主要是:</p>
<p>1，DBWn可能跟不上写入灰缓冲区：i/0系统较慢，尽量将文件均匀的分布于所有设备，</p>
<p>2，缓冲区过小或过大。</p>
<p>3，可以增加db_writer_processes数量。</p>
<p>4,可能有很大的一个事物，或者连续的大事物</p>
<p>我们需要长期观察这个事件是否长期存在并数值一直在增大,如果一直在增大,则说明需要增大db_cache大小.或优化sql.<br />
数据分散读等待,通常表现存在着与全表扫描相关的等待，逻辑读时，在内存中进行的全表扫描一般是零散地，而并非连续的被分散到缓冲区的各个部分，可能有索引丢失，或被仰制索引的存在。该等待时间在数据库会话等待多块io读取结束的时候产生，并把指定的块数离散的分布在数据缓冲区。这意味这全表扫描过多，或者io不足或争用，</p>
<p>存在这个事件,多数都是问题的,这说明大量的全部扫描而未采用索引.</p>
<p>db_cache_advice对我们调整db_cache_size大小有一定的帮助,但这只是一个参考，不一定很精确。</p>
<p>通过上面6种情况的综合分析,判断是否需要增加大cache_size. 或者把常用的（小）表放到keep区。</p>
<p>但多数的时候做这些不会解决质的问题,</p>
<p>而真正的问题主要是对sql语句的优化(如:是否存在大量的全表扫描等)</p>
<p>索引是在不需要改变程序的情况下,对数据库性能，sql语句提高的最实用的方法.</p>
<p>我在生产中遇到过类似的问题,200M的cache_size,命中率很低21%,但通过对sql语句的优化(添加索引,避免全表扫描),命中率增加到96%,程序运行时间由原来的2小时减少到不到10分钟.</p>
<p>这就提到了怎么定位高消耗的sql问题.全表扫描的问题,在这里不做细致的解说,这里只说明方法,我会在相关的章节专门介绍怎么使用这些工具</p>
<p>1,sql_trace跟踪session.用tkprof 分别输出磁盘读,逻辑读,运行时间长的sql进行优化.这些高消耗的sql一般都伴随着全表扫描.</p>
<p>2,statspack分析.在系统繁忙时期进行时间点的统计分析,产看TOP事件是否有Db file scatered read.并查看TOP sql语句是否存在问题等.</p>
<p>注：电脑学习网首发。</p>
<p>还要说一句：当然在硬件允许的情况下，尽量增大db_cache_size 减少磁盘读，但并不是越大越好，一定要根据自己的库数据量的程度来调节，因为大的db_cache_size同样会增大数据库管理的开销，当然可能开销并不会明显的影响数据库的性能，硬件价格也越来越低，这就需要我们具体问题具体分析了，在我看来物尽其用就最好了，尽量不要浪费，找到问题的本质。调优是一件很艺术的事。</p>
<p>***********************Oracle数据库缓冲区命中率*****************<br />
1、查看Oracle数据库缓冲区命中率</p>
<pre>
<ol>
<li>select a.value + b.value "logical_reads", c.value "phys_reads",</li>
<li>    round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"</li>
<li>    from v$sysstat a, v$sysstat b, v$sysstat c</li>
<li>    where a.statistic# = 40 and b.statistic# = 41</li>
<li>    and c.statistic# = 42;</li>
</ol>
</pre>
<p>2、Tags: oracle</p>
<p>数据库缓冲区命中率：</p>
<pre>
<ol>
<li>sql&gt;select value from v$sysstat where name ='physical reads';</li>
<li>value</li>
<li>3714179</li>
<li>sql&gt;select value from v$sysstat where name ='physical reads direct';</li>
<li>value</li>
<li>0</li>
<li>sql&gt;select value from v$sysstat where name ='physical reads direct(lob)';</li>
<li>value</li>
<li>0</li>
<li>sql&gt;select value from v$sysstat where name ='consistent gets';</li>
<li>value</li>
<li>856309623</li>
<li>sql&gt;select value from v$sysstat where name ='db block gets';</li>
<li>value</li>
<li>19847790</li>
</ol>
</pre>
<p>这里命中率的计算应该是</p>
<p>令x＝physical reads direct + physical reads direct(lob)</p>
<p>命中率＝100－(physical reads -x)/(consistent gets +db block gets -x)*100</p>
<p>通常如果发现命中率低于90%，则应该调整应用可以考虑是否增大数据加</p>
<p>共享池的命中率</p>
<pre>
<ol>
<li>sql&gt; select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache;</li>
</ol>
</pre>
<p>如果共享池的命中率低于95％就要考虑调整应用（通常是没应用bind var)或者增加内存。</p>
<p>关于排序部分</p>
<pre>
<ol>
<li>sql&gt; select name,value from v$sysstat where name like '%sort%';</li>
</ol>
</pre>
<p>如果我们发现sorts(disk)/(sorts(memory)+sorts(disk))的比例过高，则通常意味着sort_area_size部分内存教较小，可考虑调整相应的参数。</p>
<p>关于log_buffer</p>
<pre>
<ol>
<li>sql&gt;select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries');</li>
</ol>
</pre>
<p>假如redo buffer allocation retries/redo entries的比例超过1%我们就可以考虑增加log_buffer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/759.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转】九大Oracle性能优化基本方法详解</title>
		<link>http://blog.globstudio.com/757.html</link>
		<comments>http://blog.globstudio.com/757.html#comments</comments>
		<pubDate>Fri, 23 Apr 2010 02:01:35 +0000</pubDate>
		<dc:creator>henry.wu</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://blog.globstudio.com/?p=757</guid>
		<description><![CDATA[Oracle性能优化基本方法包括一下几个步骤，包括：
1）设立合理的Oracle性能优化目标。
2）测量并记录当前的Oracle性能。
3）确定当前Oracle性能瓶颈（Oracle等待什么、哪些SQL语句是该等待事件的成分）。
4）把等待事件记入跟踪文件。
5）确定当前的OS瓶颈。
6）优化所需的成分（应用程序、数据库、I/O、争用、OS等）。
7）跟踪并实施更改控制过程。
8）测量并记录当前性能
9）重复步骤3到7，直到满足优化目标
下面来一一详述。

1.设立合理的Oracle性能优化目标
重点：关于设立目标的最重要的一点是它们必须是可量化和可达到的。
方法：目标必须是当前性能和所需性能的的陈述形式的语句。
2.测量并记录当前Oracle性能重点：
1）需要在峰值活动时间获得当前系统性能快照
2）关键是要在出现性能问题的时间段内采集信息
3）必须在合理的时间段上采集，一般在峰值期间照几个为期15分钟的快照
3.确定当前Oracle性能瓶颈重点：从Oracle 等待接口v$system_event、v$session_event和v$session_wait中获得等待事件，进而找出影响性能的对象和sql语句。方法如下：
1)首先，利用v$system_event视图执行下面的查询查看数据库中某些常见的等待事件：


select * from v$system_event
where event in ('buffer busy waits',
'db file sequential read',
'db file scattered read',
'enqueue',
'free buffer waits',
'latch free',
'log file parallel write',
'log file sync');


2)接着，利用下面对v$session_event和v$session视图进行的查询，研究具有对上面显示的内容有贡献的等待事件的会话：


select se.sid,s.username,se.event,se.total_waits,se.time_waited,se.average_wait
from v$session s,v$session_event se
where s.sid = se.sid
and se.event not like 'SQL*Net%'
and s.status = 'ACTIVE'
and s.username is not null;


3)使用下面查询找到与所连接的会话有关的当前等待事件。这些信息是动态的，为了查看一个会话的等待最多的事件是什么，需要多次执行此查询。


select sw.sid,s.username,sw.event,sw.wait_time,sw.state,sw.seconds_in_wait SEC_IN_WAIT
from v$session s,v$session_wait sw
where s.sid = sw.sid
and sw.event not like 'SQL*Net%'
and s.username is not null
order by sw.wait_time desc;


4)查询会话等待事件的详细信息


select sid,event,p1text,p1,p2text,p2,p3text,p3
from v$session_wait
where sid between &#38;1 and &#38;2
and event not like '%SQL%'
and event not like '%rdbms%';


5)利用P1、P2的信息，找出等待事件的相关的段


select owner,segment_name,segment_type,tablespace_name
from dba_extents
where file_id = &#38;fileid_in
and &#38;blockid_in between block_id and block_id + blocks - 1;


6)获得操作该段的sql语句：


select sid, getsqltxt(sql_hash_value,sql_address)
from v$session
where sid = &#38;sid_in;


7)getsqltxt函数
8)至此已经找到影响性能的对象和sql语句，可以有针对性地优化
4.把等待事件记入跟踪文件
重点：如果在跟踪系统上的等待事件时，由于某种原因遇到了麻烦，则可以将这些等待事件记入一个跟踪文件。方法如下：
1)对于当前会话：


alter session set timed_statistics=true;
alter session set max_dump_file_size=unlimited;
alter session set events '10046 trace name context forever, level 12';


2)执行应用程序，然后在USER_DUMP_DEST指出的目录中找到跟踪文件。
3)查看文件中以词WAIT开始的所有行。
4)对于其它的会话
5)确定会话的进程ID（SPID）。下面的查询识别出名称以A开始的所有用户的会话进程ID：


select S.Username, P.Spid from V$SESSION S, V$PROCESS P
where S.PADDR = P.ADDR and S.Username like 'A%';


6)以sysdba进入sqlplus执行


alter session set timed_statistics=true;
alter session set max_dump_file_size=unlimited;
oradebug setospid
oradebug unlimit
oradebug event 10046 trace name context forever, level X /* Where X = (1,4,8,12) */


7)跟踪某个时间间隔得会话应用程序。
8)在USER_DUMP_DEST 的值指出的目录中利用SPID查看跟踪文件
9)查看文件中以词WAIT开始的所有行。
5.确定当前OS瓶颈1）Windows NT上的监控
使用控制面板-〉管理工具-〉性能即可
2）UNIX上的监控
使用通用性的工具，包括sar、iostat、cpustat、mpstat、netstat、top、osview等。
6．Oracle性能优化所需的成分（应用程序、数据库、I/O、争用、OS等）。
7．跟踪并实施更改控制过程。
8．测量并记录当前Oracle性能
9．重复步骤3到7，直到满足优化目标
【转自】http://database.51cto.com/art/201004/196136.htm
]]></description>
			<content:encoded><![CDATA[<p><strong>Oracle性能优化基本方法包括一下几个步骤，包括：</strong></p>
<p>1）设立合理的Oracle性能优化目标。<br />
2）测量并记录当前的Oracle性能。<br />
3）确定当前Oracle性能瓶颈（Oracle等待什么、哪些SQL语句是该等待事件的成分）。<br />
4）把等待事件记入跟踪文件。<br />
5）确定当前的OS瓶颈。<br />
6）优化所需的成分（应用程序、数据库、I/O、争用、OS等）。<br />
7）跟踪并实施更改控制过程。<br />
8）测量并记录当前性能<br />
9）重复步骤3到7，直到满足优化目标</p>
<p>下面来一一详述。<br />
<span id="more-757"></span></p>
<p><strong>1.设立合理的Oracle性能优化目标</strong></p>
<p>重点：关于设立目标的最重要的一点是它们必须是可量化和可达到的。</p>
<p>方法：目标必须是当前性能和所需性能的的陈述形式的语句。</p>
<p><strong>2.测量并记录当前Oracle性能重点：</strong></p>
<p>1）需要在峰值活动时间获得当前系统性能快照</p>
<p>2）关键是要在出现性能问题的时间段内采集信息</p>
<p>3）必须在合理的时间段上采集，一般在峰值期间照几个为期15分钟的快照</p>
<p><strong>3.确定当前Oracle性能瓶颈</strong>重点：从Oracle 等待接口v$system_event、v$session_event和v$session_wait中获得等待事件，进而找出影响性能的对象和sql语句。方法如下：</p>
<p>1)首先，利用v$system_event视图执行下面的查询查看数据库中某些常见的等待事件：</p>
<pre>
<ol>
<li>select * from v$system_event</li>
<li>where event in ('buffer busy waits',</li>
<li>'db file sequential read',</li>
<li>'db file scattered read',</li>
<li>'enqueue',</li>
<li>'free buffer waits',</li>
<li>'latch free',</li>
<li>'log file parallel write',</li>
<li>'log file sync');</li>
</ol>
</pre>
<p>2)接着，利用下面对v$session_event和v$session视图进行的查询，研究具有对上面显示的内容有贡献的等待事件的会话：</p>
<pre>
<ol>
<li>select se.sid,s.username,se.event,se.total_waits,se.time_waited,se.average_wait</li>
<li>from v$session s,v$session_event se</li>
<li>where s.sid = se.sid</li>
<li>and se.event not like 'SQL*Net%'</li>
<li>and s.status = 'ACTIVE'</li>
<li>and s.username is not null;</li>
</ol>
</pre>
<p>3)使用下面查询找到与所连接的会话有关的当前等待事件。这些信息是动态的，为了查看一个会话的等待最多的事件是什么，需要多次执行此查询。</p>
<pre>
<ol>
<li>select sw.sid,s.username,sw.event,sw.wait_time,sw.state,sw.seconds_in_wait SEC_IN_WAIT</li>
<li>from v$session s,v$session_wait sw</li>
<li>where s.sid = sw.sid</li>
<li>and sw.event not like 'SQL*Net%'</li>
<li>and s.username is not null</li>
<li>order by sw.wait_time desc;</li>
</ol>
</pre>
<p>4)查询会话等待事件的详细信息</p>
<pre>
<ol>
<li>select sid,event,p1text,p1,p2text,p2,p3text,p3</li>
<li>from v$session_wait</li>
<li>where sid between &amp;1 and &amp;2</li>
<li>and event not like '%SQL%'</li>
<li>and event not like '%rdbms%';</li>
</ol>
</pre>
<p>5)利用P1、P2的信息，找出等待事件的相关的段</p>
<pre>
<ol>
<li>select owner,segment_name,segment_type,tablespace_name</li>
<li>from dba_extents</li>
<li>where file_id = &amp;fileid_in</li>
<li>and &amp;blockid_in between block_id and block_id + blocks - 1;</li>
</ol>
</pre>
<p>6)获得操作该段的sql语句：</p>
<pre>
<ol>
<li>select sid, getsqltxt(sql_hash_value,sql_address)</li>
<li>from v$session</li>
<li>where sid = &amp;sid_in;</li>
</ol>
</pre>
<p>7)getsqltxt函数</p>
<p>8)至此已经找到影响性能的对象和sql语句，可以有针对性地优化</p>
<p><strong>4.把等待事件记入跟踪文件</strong></p>
<p>重点：如果在跟踪系统上的等待事件时，由于某种原因遇到了麻烦，则可以将这些等待事件记入一个跟踪文件。方法如下：</p>
<p>1)对于当前会话：</p>
<pre>
<ol>
<li>alter session set timed_statistics=true;</li>
<li>alter session set max_dump_file_size=unlimited;</li>
<li>alter session set events '10046 trace name context forever, level 12';</li>
</ol>
</pre>
<p>2)执行应用程序，然后在USER_DUMP_DEST指出的目录中找到跟踪文件。</p>
<p>3)查看文件中以词WAIT开始的所有行。</p>
<p>4)对于其它的会话</p>
<p>5)确定会话的进程ID（SPID）。下面的查询识别出名称以A开始的所有用户的会话进程ID：</p>
<pre>
<ol>
<li>select S.Username, P.Spid from V$SESSION S, V$PROCESS P</li>
<li>where S.PADDR = P.ADDR and S.Username like 'A%';</li>
</ol>
</pre>
<p>6)以sysdba进入sqlplus执行</p>
<pre>
<ol>
<li>alter session set timed_statistics=true;</li>
<li>alter session set max_dump_file_size=unlimited;</li>
<li>oradebug setospid</li>
<li>oradebug unlimit</li>
<li>oradebug event 10046 trace name context forever, level X /* Where X = (1,4,8,12) */</li>
</ol>
</pre>
<p>7)跟踪某个时间间隔得会话应用程序。</p>
<p>8)在USER_DUMP_DEST 的值指出的目录中利用SPID查看跟踪文件</p>
<p>9)查看文件中以词WAIT开始的所有行。</p>
<p><strong>5.确定当前OS瓶颈</strong>1）Windows NT上的监控</p>
<p>使用控制面板-〉管理工具-〉性能即可</p>
<p>2）UNIX上的监控</p>
<p>使用通用性的工具，包括sar、iostat、cpustat、mpstat、netstat、top、osview等。</p>
<p><strong>6．Oracle性能优化所需的成分（应用程序、数据库、I/O、争用、OS等）。</strong></p>
<p><strong>7．跟踪并实施更改控制过程。</strong></p>
<p><strong>8．测量并记录当前Oracle性能</strong></p>
<p><strong>9．重复步骤3到7，直到满足优化目标</strong></p>
<p>【转自】<a href="http://database.51cto.com/art/201004/196136.htm">http://database.51cto.com/art/201004/196136.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.globstudio.com/757.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
