摘要: 一转眼接触ORACLE已经一年了,在这一年中收获多多,感慨多多,我记得是2004年11月底开始学习ORACLE的,当时选择方向也是几经波折,还好现在的处境不是非常的艰难,前途似乎还有想象中的光明。 毕业已经两年半,开始半年主要是接触Sybase,当时公司后台使用的Sybase SQL 11,由于人手比较少,管理也不很严格,所以我经常有机会光顾他,在那里我学会了怎样备份,恢复数据库... 阅读全文
posted @ 2008-08-12 13:50 zping 阅读(587) 评论(2) 推荐(0)
摘要: 这是SQL Server 2005里的介绍: 如果两个联接输入都很大,而且这两个输入的大小差不多,则预先排序的合并联接提供的性能与哈希联接相近。但是,如果这两个输入的大小相差很大,则哈希联接操作通常快得多。 哈希联接可以有效处理未排序的大型非索引输入。它们对复杂查询的中间结果很有用,因为: · 中间 阅读全文
posted @ 2008-08-11 21:38 zping 阅读(3301) 评论(5) 推荐(1)
摘要: 简介: 如果两个联接输入并不小但已在二者联接列上排序(例如,如果它们是通过扫描已排序的索引获得的),则合并联接是最快的联接操作。如果两个联接输入都很大,而且这两个输入的大小差不多,则预先排序的合并联接提供的性能与哈希联接相近。 从上次我们分析来看,嵌套循环适合输入和输出都小的情况,那如果输入和输入都 阅读全文
posted @ 2008-08-10 17:27 zping 阅读(2187) 评论(0) 推荐(1)
摘要: 前段时间看了一篇关于算法的blog,地址如下: http://www.cnblogs.com/perfectdesign/archive/2008/04/24/sql_tuning.html 不少人也给了解决方法,以前也研究过(嵌套,合并,hash)算法,但没有真正的用到优化中,这个例子给了我很大启 阅读全文
posted @ 2008-08-10 17:20 zping 阅读(6909) 评论(6) 推荐(0)
摘要: 最近公司同事碰到需求,实现一个功能,想用一个sq语句实现,他让我看看如何实现sql。由于前期做培训时说到尽量减少和数据库的交互,能一条sql取出来就不用两次sql语句: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->CREATE TABLE... 阅读全文
posted @ 2008-08-06 21:15 zping 阅读(2449) 评论(0) 推荐(0)
摘要: 当我一个运行很长的事务,在事务提交以完后,突然断电了,这时长事务里肯定有没有处理的语句,面对这样情况,一部分已经处理完了,一部还没来得及处理的情况,SQL Server 2005 数据库是如何保证事务的持久性和一致性? 以上的情况,查一般的SQL Server 2005资料是很难有答案的,这段时间在学Oracle时,了解了其事务是如何保证事务的acid ,后来在SQL Server ... 阅读全文
posted @ 2008-08-06 19:18 zping 阅读(2543) 评论(8) 推荐(0)
摘要: 前段时间在 http://www.itput.net/ 看到 一篇文章, http://www.itpub.net/thread-1031306-1-4.html 提到一个SQL语句: 建立环境: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.c... 阅读全文
posted @ 2008-08-06 14:03 zping 阅读(3681) 评论(0) 推荐(0)
摘要: 避免 LEFT JOIN 和 NULL 当然,有很多时候您需要执行 LEFT JOIN 和使用 NULL 值。但是,它们并不适用于所有情况。改变 SQL 查询的构建方式可能会产生将一个花几分钟运行的报告缩短到只花几秒钟这样的天壤之别的效果。有时,必须在查询中调整数据的形态,使之适应应用程序所要求的显示方式。虽然 TABLE 数据类型会减少大量占用资源的情况,但在查询中... 阅读全文
posted @ 2008-08-05 21:19 zping 阅读(8488) 评论(0) 推荐(2)
摘要: SQL优化--使用关联查询代替子查询 测试例子: 子查询: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->select a.*, (select workflowname from workflowbase where i... 阅读全文
posted @ 2008-08-05 21:05 zping 阅读(10656) 评论(2) 推荐(0)
摘要: 在使用Exists时,如果能正确使用,有时会提高查询速度: 1,使用Exists代替inner join 2,使用Exists代替 in 1,使用Exists代替inner join例子: 在一般写sql语句时通常会遇到如下语句: 两个表连接时,取一个表的数据,一般的写法通过关联查询(inner j 阅读全文
posted @ 2008-08-05 20:52 zping 阅读(32578) 评论(36) 推荐(0)
摘要: 原创:胖子刘(转载请注明作者和出处,谢谢) (二)自联结模式 自联结模式,也可以看作是“主从模式”的一种特殊情况(或者说是“变形”),它在一张表内实现了“一对多关系”,并且可以根据业务需要实现“有限层”或者“无限层”的主从嵌套。 这种模式用得最多的情况就是实现“树形结构”数据的存储,比如各大网站上常见的细分类别、应用系统的组织结构、Web系统的菜单树等都能用到这种模式。 自联结模式有很... 阅读全文
posted @ 2008-08-04 21:11 zping 阅读(1982) 评论(3) 推荐(0)
摘要: 除了上面提到的四种主要设计模式,还有一些其他模式,在某些项目中可能会用到,在这里先简单做个说明,暂不做深入讨论,等到以后的项目用到这些模式的时候,再结合实际需求详细解说。 (一)继承模式 继承模式,可以看作是“主从模式”的一种特殊情况(或者说是“变形”),它所代表的两个对象也是“一对多”的关系。它与“主从模式”的区别是,“继承模式”中从表的主键是复合主键,并且复合主键中必定包含主表的主键列。 ... 阅读全文
posted @ 2008-08-04 21:10 zping 阅读(5782) 评论(0) 推荐(0)
摘要: (五)使用上述四种模式的一般原则 1. 什么时候用“主扩展模式”? 对象的个数不多;各个对象之间的属性有一定差别;各个对象的属性在数据库设计阶段能够完全确定;各个扩展对象有独立的、相对比较复杂的业务处理需求,此时用“主扩展模式”。将各个对象的共有属性抽取出来设计为“主表”,将各个对象的剩余属性分别设计为相应的“扩展表”,“主表”与各个“扩展表”分别建立一对一的关系。 2. ... 阅读全文
posted @ 2008-08-04 21:06 zping 阅读(1175) 评论(0) 推荐(0)
摘要: 多对多模式 也是比较常见的一种数据库设计模式,它所描述的两个对象不分主次、地位对等、互为一对多的关系。对于A表来说,一条记录对应着B表的多条记录,反过来对于B表来说,一条记录也对应着A表的多条记录,这种情况就是“多对多模式”。 “多对多模式”需要在A表和B表之间有一个关联表,这个关联表也是“多对多模式”的核心所在。根据关联表是否有独立的业务处理需求,可将其划分为两种细分情况。 1. ... 阅读全文
posted @ 2008-08-04 21:05 zping 阅读(6388) 评论(1) 推荐(1)
摘要: 名值模式: 通常用来描述在系统设计阶段不能完全确定属性的对象,这些对象的属性在系统运行时会有很大的变更,或者是多个对象之间的属性存在很大的差异。 举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“名值模式”这个概念来使用的,请大家注意)。 1. 使用名值模式进行设计时,如果对“其他属性”仅作浏览保存、不作其它任何特殊处理,则通... 阅读全文
posted @ 2008-08-04 21:03 zping 阅读(1156) 评论(1) 推荐(0)