09 2008 档案

摘要:数据库技术是信息资源管理最有效的手段。   数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。   数据库设计的各阶段:   A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。   B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。   C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。   D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 阅读全文
posted @ 2008-09-18 14:55 莫贝特(MBetter) 阅读(1434) 评论(0) 推荐(1)
摘要:一、数据库设计过程   数据库技术是信息资源管理最有效的手段。   数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。   数据库设计的各阶段:   A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。   B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。   C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。   D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 阅读全文
posted @ 2008-09-18 14:53 莫贝特(MBetter) 阅读(697) 评论(0) 推荐(1)
摘要:在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象:   1、分页速度一般维持在1秒和3秒之间。   2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。   虽然在超大容量情况下,这个分页的实现过程是很快的,但在分前几页时,这个1-3秒的速度比起第一种甚至没有经过优化的分页方法速度还要慢,借用户的话说就是“还没有ACCESS数据库速度快”,这个认识足以导致用户放弃使用您开发的系统。   笔者就此分析了一下,原来产生这种现象的症结是如此的简单,但又如此的重要:排序的字段不是聚集索引! 阅读全文
posted @ 2008-09-18 08:59 莫贝特(MBetter) 阅读(733) 评论(0) 推荐(1)
摘要:建立一个web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。   更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。现在流行的分页方法一般是检索页面大小的块区的数据,而非检索所有的数据,然后单步执行当前行。 阅读全文
posted @ 2008-09-18 08:52 莫贝特(MBetter) 阅读(559) 评论(0) 推荐(1)
摘要: 1:sql server 索引优化一 2:sql server 索引优化二 3:sql server sql 优化 4:sql 优化之:实现小数据量和海量数据的通用分页显示存储过程(系列四) 5:sql 优化之:聚集索引的重要性和如何选择聚集索引(系列五) 阅读全文
posted @ 2008-09-18 08:47 莫贝特(MBetter) 阅读(595) 评论(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) 阅读(636) 评论(0) 推荐(1)
摘要:实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:  其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。 阅读全文
posted @ 2008-09-17 21:49 莫贝特(MBetter) 阅读(1110) 评论(0) 推荐(1)
摘要:(一)深入浅出理解索引结构   实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:   其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。 阅读全文
posted @ 2008-09-17 21:41 莫贝特(MBetter) 阅读(1015) 评论(1) 推荐(1)
摘要: 数据库作为数据的一个容器,不但对程序的performance有很大的影响,而且对应用程序的扩展有非常大的影响.所以对应用程序来说,一个具有良好设计的数据库是非常重要的.那么如何才能设计出性能好,又支持扩展的数据库呢?这是我们大家都要去探索的问题.现在有很多版本的数据库设计的流程.然而这也只是目前阶段能设计出一个比较好的数据库的一个途径.更好更优的数据库设计流程是我们追求的目标.但是现在,我们先来了解下目前阶段标准的数据库设计流程.以助于我们在开发应用程序的时候能用到. 阅读全文
posted @ 2008-09-16 10:26 莫贝特(MBetter) 阅读(9108) 评论(6) 推荐(2)
摘要: 最近倍感轻松,因为负责的项目已经正式上线了.回顾这1年半的时间,真是酸甜苦辣,五味俱全.先来说下我们的项目,费用大概加起来接近300万,项目分为3个Phase,历时15个月终于正式结束了.所以在此回顾一下项目,并总结一下其中的经验和教训.欢迎各位拍砖. 由于我们以前很少做项目(基本都是产品),所以在刚开始接到这个项目的时候,说真的,公司并没有成功的经验来供我们参考, 所以在我们项目结束后,来统计投入和收益的时候,我们竟然发现其实我们在项目的第一阶段基本不赚任何钱.这是因为项目开始时,我们投入的人力高达20个人,其中包括一半是外包人员(然而这些不稳定的外包人员不但没有给我们的项目带来帮助,而且是我们一个很大的问题.后面我们会讲到这个问题). 阅读全文
posted @ 2008-09-10 15:28 莫贝特(MBetter) 阅读(4440) 评论(43) 推荐(0)
摘要: google官网上已经可以下载,不过我下载下来了.就分享一下吧.不过好像都是js文件.牛XX. 下载 The easiest way to download Google Doctype is with a Subversion client. If you only want the sample code, use this command: svn checkout http://doctype.googlecode.com/svn/trunk/goog goog If you want the entire project (code, test cases, and articles), use this command instead: svn checkout http://doctype.googlecode.com/svn/ doctype 阅读全文
posted @ 2008-09-04 14:37 莫贝特(MBetter) 阅读(619) 评论(2) 推荐(0)
摘要: 昨天在浏览新闻的时候看到了google browser:chrome.兴奋的不得了,而且还在cnblogs的首页发布了google将要出浏览器的信息.今天是chrome的beta版本. 于是早上起来很早(google的东西我一直认为非常棒,当然想去试试了),就去下载尝试,初体验感觉非常棒,好像客户端确实很强.但是在查看 chrome使用内存的时候,发现了进程竟然有三了chrome的进程!!奇怪为什么?我只打开了一个而已.我尝试用Firefox打开了相同的几个页面 Google chrome也的确占用内存很小,不过感觉还是不爽 1:竟然不支持 Iciba的英文抓词,由于本人英文不是很好,在看外文网站的时候,喜欢打开iciba,一边看一边翻译,无论我的鼠标在Chrome 上怎么动,就是翻译不出来.郁闷.看来看E文文章,Google Chrome不是首选了. 阅读全文
posted @ 2008-09-03 09:23 莫贝特(MBetter) 阅读(3230) 评论(62) 推荐(0)
摘要: 今天早上起来,在浏览新闻时,突然看到,google要推出浏览器.赶紧把这个小心告诉大家,期待ing..................... 好像有几个特点: 1:open source 2:优化了javascript的性能. 3,特别的 tab,不像FF一样,tab放在了最上方. ......E文不是很好,自己看吧 阅读全文
posted @ 2008-09-02 09:54 莫贝特(MBetter) 阅读(1875) 评论(5) 推荐(0)
摘要:在C#中,我们可能经常用到使用非常方便的Hashtable,不知大家是否知道它的另外一个名字:散列表.事实上Hashtable使用了某种算法,通过键(key)来确定每个对象的位置,实际上,该算法并不完全是Hashtable类提供的.它有两个部分,其中的一部分的代码是有key类来完成.我们平常在使用Hashtable的时候,key我们一般使用string类(部分算法string已经提供,Microsoft已经替我们做了),所以不会有任何的问题,但是如果key类是用户自己编写的,就必须自己编写这部分算法了. 阅读全文
posted @ 2008-09-02 00:01 莫贝特(MBetter) 阅读(5535) 评论(18) 推荐(0)