当一个web系统的用户不断增长时,其数据量也会随之飞速增长。当数据量达到一定级别后,如数据表已达亿或十亿级别,系统会涉及到一些容量、性能以及分布式方面的问题。此时如在使用Oracle,它也会出现瓶颈,如逻辑读写非常高、CPU一度飙升到四五十、对数据请求不断延时(体现在TPS和QPS不断下降)、数.....
分类:
Web程序 时间:
2014-11-13 00:26:02
阅读次数:
227
一、SET STATISTICS IO(有关TSQL语句查询所产生的磁盘活动量)扫描计数:在查询中涉及到的表被访问的次数;逻辑读取:从数据缓冲中读取的数据页数;物理读取:从物理磁盘中往缓冲读取的数据页数;预读:根据执行计划从物理磁盘中往缓冲读取的数据页数;--显示有关由Transact-SQL 语句...
分类:
数据库 时间:
2014-11-04 16:57:08
阅读次数:
215
select的逻辑读逻辑读:=== db block gets +consistent gets第一步:算出dba ==========>找到DBA,5号文件,9509号块???????第二步:根据第一步做hash运算。算出在哪个bucket上面,比如是100。第三步:在hash table上找1....
分类:
其他好文 时间:
2014-10-28 00:27:09
阅读次数:
215
【摘要】对SQLServer数据库进行性能优化时,有一个重要的工作是优化IO开销。通过开启StatisticsIO,我们可以了解到语句执行的IO开销,包含物理读、逻辑读、预读等。而我们是否了解这三者的区别和联系呢,相信很多人都不是很理解,下面我们一起来探索这三者究竟分别代表着什么。..
分类:
数据库 时间:
2014-10-13 17:49:30
阅读次数:
312
当我们在对生产库做优化的时候,主要就是对SQL语句的优化,包括语句的等价改写等,但其中很大一部分情况,又与索引有关。如果能合理利用合适的索引,可以使原本走全表扫描产生的逻辑读大大降低,提高数据库的性能。由于Oracle数据库中的索引本身就要占用磁盘空间,维护索引需要一定的开销,如何才能知道创建某个索引,会给数据带来性能的提升,而又不至于判断失误,创建了一个不恰当的索引,最后又不得不删除呢?这种情况...
分类:
数据库 时间:
2014-09-17 03:39:01
阅读次数:
426
比较两种代码,核心代码相同,其中一个使用变量保存查询出的结果,另一个直接输出。使用同一变量时,强迫SQL放弃了并行,使用了循环。 测试结果
表'#1699586C'。扫描计数1,逻辑读取186 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。 SQ...
分类:
数据库 时间:
2014-09-16 10:22:20
阅读次数:
358
---首先,Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类。---物理读,真正有IO;逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具体对象在缓存区中的命中率。---所以,使用数据缓存区技术的,都可以有类似的方式..
分类:
数据库 时间:
2014-08-29 03:02:37
阅读次数:
313
Oracle学习之--BufferCache深入解析服务器进程和数据库缓冲区高速缓存:当服务器需要块时,需要按系列步骤读取块:1、首先,服务器使用散列函数检查是否可以从缓冲区高速缓存中获得所需要的块。如果找到缓冲区,则将它移动到LRU列表中远离LRU末尾的另一端。这是逻辑读取,因为..
分类:
数据库 时间:
2014-07-23 21:26:46
阅读次数:
344
在ITPUB 上看到一个帖子 http://www.itpub.net/thread-1875212-1-1.html同一条SQL语句,只有查询条件不一样,查询返回的结果集都为0,一个走了全表扫描,一个走索引。查看全表扫描的SQL语句:SQL走全表,产生了2422609个逻辑读,cost为535KS...
分类:
数据库 时间:
2014-07-20 08:19:29
阅读次数:
291
以下事项是看到别人总结,并结合自己的开发实践整理。1、大胆说不:勇于承认自己不知道答案,这点就和勇于对不合理的要求说不一样令人难以开口,却不能不开口。2、重视沟通:修复错误时不要急于下手,要先明白现在的逻辑,读懂现在的代码,遇到其它小组主写的程序时不要死看程序,要多向其它小组的同事讨教。3、小问.....
分类:
其他好文 时间:
2014-07-19 12:23:08
阅读次数:
151