摘要: 数据库技术是信息资源管理最有效的手段。   数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。   数据库设计的各阶段:   A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。   B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。   C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。   D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 阅读全文
posted @ 2008-09-18 14:55 莫贝特(MBetter) 阅读(1416) 评论(0) 推荐(1) 编辑
摘要: 一、数据库设计过程   数据库技术是信息资源管理最有效的手段。   数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。   数据库设计的各阶段:   A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。   B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。   C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。   D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 阅读全文
posted @ 2008-09-18 14:53 莫贝特(MBetter) 阅读(674) 评论(0) 推荐(1) 编辑
摘要: 在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象:   1、分页速度一般维持在1秒和3秒之间。   2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。   虽然在超大容量情况下,这个分页的实现过程是很快的,但在分前几页时,这个1-3秒的速度比起第一种甚至没有经过优化的分页方法速度还要慢,借用户的话说就是“还没有ACCESS数据库速度快”,这个认识足以导致用户放弃使用您开发的系统。   笔者就此分析了一下,原来产生这种现象的症结是如此的简单,但又如此的重要:排序的字段不是聚集索引! 阅读全文
posted @ 2008-09-18 08:59 莫贝特(MBetter) 阅读(715) 评论(0) 推荐(1) 编辑
摘要: 建立一个web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。   更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。现在流行的分页方法一般是检索页面大小的块区的数据,而非检索所有的数据,然后单步执行当前行。 阅读全文
posted @ 2008-09-18 08:52 莫贝特(MBetter) 阅读(550) 评论(0) 推荐(1) 编辑
摘要: 1:sql server 索引优化一 2:sql server 索引优化二 3:sql server sql 优化 4:sql 优化之:实现小数据量和海量数据的通用分页显示存储过程(系列四) 5:sql 优化之:聚集索引的重要性和如何选择聚集索引(系列五) 阅读全文
posted @ 2008-09-18 08:47 莫贝特(MBetter) 阅读(576) 评论(0) 推荐(1) 编辑
摘要: 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:   select * from table1 where name='zhangsan' and tID > 10000   和执行:   select * from table1 where tID > 10000 and name='zhangsan'   一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name='zhangsan'的,而后再根据限制条件条件tID& gt;10000来提出查询结果。   事实上,这样的担心是不必要的。SQL SERVER中有一个“查询分析优化器”,它可以计算出where子句中的搜索条件并确定哪个索引能缩小表扫描的搜索空间,也就是说,它能实现自动优化。 阅读全文
posted @ 2008-09-18 08:32 莫贝特(MBetter) 阅读(620) 评论(0) 推荐(1) 编辑