- 博客(14)
- 收藏
- 关注
原创 堆和栈的一点区别
五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会
2005-06-27 18:40:00 1589
原创 关于硬盘
一直以来总觉得自己的硬盘不够用,上周狠狠心,花了700元买了个160G的硬盘。急忙回家,开了机箱就扔了进去,可是开机自检居然没发现一硬盘,而且连光驱也找不到了。就觉得很是奇怪,以前经常挂双硬盘也没出过问题。难道是供电的问题?于是把光驱拆了,开机成功找到两个硬盘。可是没有光驱我怎么把系统对拷到刚买的硬盘上啊。 只好找了个旧的电源,让光驱和硬盘单独使用一个电源,开机居然还是找不到。于是有点气愤了
2005-06-27 14:20:00 1082
原创 windows+apache+php
以前在Linux下装过apache的php和perl支持,因为Linux默认把所有的东西都安装好了,所以直接改配置文件就搞定了。这次想在windows下搞个apache的php支持,居然花了不少时间。现在总结一下,也许以后还有用得着得地方。1.首先去下载相关软件apache http://www.apache.orgphp http://www.php.net2.配置apache 一
2005-06-27 13:20:00 1434
原创 Flash +XML+PHP5
网上已经有很多关于Flash MX+XML+asp文章,这种技术已经很成熟了,因此应用也比较广泛。但是很难找到关于后台是php代码实现的例子,正好有空,研究了一下。顺便把网上的一些资料整理一下,也许有用得着的地方。1. 原理网站采用Flash做前端,客户端所有的操作都用Flash实现,服务器端负责从数据库读取和处理数据。客户端和服务器端的数据通信则 通过XML实现。简单点说就是服务器端把数据从数据
2005-06-27 13:17:00 1766
原创 探究X Window System运行原理与启动过程
摘自 http://bbs.chinaunix.net/forum/4/041229/474678.html 作者:xdkui第一次在Debian下装XFree86,startx启动了twm,装了gnome 后startx启动了gnome环境,为什么?装gnome 时修改了什么文件以及X环境是怎么起来的?本来是想搞清这几个文题开始研究这个题目的,没想到还学到了很多别的东西^_^本文主要说明X Wi
2005-06-27 13:14:00 831
原创 ORACLE SQL性能优化系列 (十三) (十四) 完结篇
43. 用WHERE替代ORDER BYORDER BY 子句只在两种严格的条件下使用索引. ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列. 例如: 表DEPT包含以下列: DEPT_CODE PK NOT
2005-06-27 13:08:00 811
原创 ORACLE SQL性能优化系列 (十一) (十二)
36. 用UNION替换OR (适用于索引列)通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意, 以上规则只针对多个索引列有效. 如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低. 在下面的例子中, LOC_ID 和REGION上都建有索引.高效: SELECT LOC_ID , LOC_D
2005-06-27 13:06:00 973
原创 ORACLE SQL性能优化系列 (九) (十)
27. 基础表的选择 基础表(Driving Table)是指被最先访问的表(通常以全表扫描的方式被访问). 根据优化器的不同, SQL语句中基础表的选择是不一样的.如果你使用的是CBO (COST BASED OPTIMIZER),优化器会检查SQL语句中的每个表的物理大小,索引的状态,然后选用花费最低的执行路径.如果你用RBO (RULE BASED OPTIMIZER) , 并且
2005-06-27 13:04:00 847
原创 ORACLE SQL性能优化系列 (七) (八)
24. 用EXPLAIN PLAN 分析SQL语句 EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称.你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN分析的结果是用缩进的格式排列的, 最内部的
2005-06-27 13:02:00 1080
原创 ORACLE SQL性能优化系列 (五) (六)
17. 使用表的别名(Alias)当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误. (译者注: Column歧义指的是由于SQL中不同的表具有相同的Column名,当SQL语句中出现这个Column时,SQL解析器无法判断这个Column的归属) 18. 用EXISTS
2005-06-27 12:59:00 976
原创 ORACLE SQL性能优化系列 (四)
13. 计算记录条数 和一般的观点相反, count(*) 比count(1)稍快 , 当然如果可以通过索引检索,对索引列的计数仍旧是最快的. 例如 COUNT(EMPNO) (译者按: 在CSDN论坛中,曾经对此有过相当热烈的讨论, 作者的观点并不十分准确,通过实际的测试,上述三种方法并没有显著的性能差别) 14. 用Where子句替换HAVING子句
2005-06-27 12:54:00 702
原创 ORACLE SQL性能优化系列 (三)
8. 使用DECODE函数来减少处理时间 使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如: SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’; SELECT COUNT(*),SUM(SAL) FROM EMP WHERE
2005-06-27 12:52:00 815
原创 ORACLE SQL性能优化系列 (二)
4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.
2005-06-27 12:19:00 828
原创 ORACLE SQL性能优化系列 (一)
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)
2005-06-27 12:10:00 830
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人