摘要:我的标签: 大数据量海量数据库的查询优化及分页算法方案(五)戴超 2009-01-31 22:37 阅读:105 评论:0海量数据库的查询优化及分页算法方案(四) 戴超 2009-01-31 22:36 阅读:55 评论:0海量数据库的查询优化及分页算法方案(三)戴超 2009-01-31 22:34 阅读:56 评论:0海量数据库的查询优化及分页算法方案(二)戴超 2009-01-31 22:3...
        
阅读全文
 
    
        
        
摘要:sql查询的where条件语句中,可以使用and和or实现逻辑的判断。如果where比较复杂的话,就会产生and 和 or的嵌套使用,写起来会很费力气,看起来就更是一头雾水了。  于是有人就想起了union,其实它是可以替代or的,反正就是把结果串联起来,貌似应该可以。而且,写起来更加容易,看起来也很清晰。但是不知道两个的性能如何呢?下面我就做一个比较,建立三张表,分别插入10万,100万和100...
        
阅读全文
 
    
        
        
摘要:虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: ◆回滚,而回滚会取消事务执行的所有工作。◆由于死锁时回滚而由应用程序重新提交。下列方法有助于最大限度地降低死锁: ◆按同一顺序访问对象。◆避免事务中的用户交互。◆保持事务简短并在一个批处理中。◆使用低隔离级别。◆使用绑定连接。按同一顺序访问对象如果所有并发事务按同一顺序访问对象...
        
阅读全文
 
    
        
        
摘要:1)不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。2)采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定...
        
阅读全文
 
    
        
        
摘要:大型ERP等数据库系统常见几种设计1. 自增长 primary key  采用自增长 primary key主要是性能。早期的数据库系统,经常采用某种编号,比如身份证号码,公司编号等等作为数据库表的 primary key。然而,很快,大家就发现其中的不利之处。     比如早期的医院管理系统,用身份证号码作为病人表的 primary key。然而,第一,不是每个人都有身份证;第二,对于国外来的病...
        
阅读全文
 
    
        
        
摘要:大型MIS的开发应重视数据库设计80年代初以来,国内许多计算机专家先后深入一些大型企业,力图开发出理想的大型MIS。实践证明,开发出的大型MIS,多数不很理想。原因何在?据作者一孔之见,其中一条重要的原因,就是在开发过程中对MIS的数据库设计重视不够,没有把它当作一件头等大事来处理。一个大型MIS,如果它的数据库设计出了问题,就是出了大问题,或者说从根本上出了问题。这样的MIS,不会成功,只会失败...
        
阅读全文
 
    
        
        
摘要:数据库模型的设计是否合理会极大影响系统的使用性能。笔者依据多年来设计和使用数据库的经验,提出以下一些设计原则,供同仁们参考。  慎用游标(Cursor)   游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机,笔者在某市“住房公积金管理系统&rdq...
        
阅读全文
 
    
        
        
摘要:一个索引查找的ASP.NET示例探讨最近做了一个简单的关于索引的Demo,遂与大家分享。之所以在文章的标题加上了“探讨”二字:一是希望能作为园子里入门TX的学习示例(如何创建索引 + 如何创建存储过程 + ASP.NET简单的三层示例,还可以参考我的另一篇文章:ASP.NET应用程序的三层设计模型(学习))二是希望能够抛砖引玉,听听大家对于索引如何使用的见解,以及关于数据库...
        
阅读全文
 
    
        
        
摘要:浅谈SQL Server 数据库的触发器触发器的特征:1、触发器是在对表进行增、删、改时,自动执行的存储过程。触发器常用于强制业务规则,它是一种高级约束,通过事件进行触发而被执行。2、触发器是一个特殊的事务单元,可以引用其他表中的列执行特殊的业务规则或数据逻辑关系。当出现错误时,可以执行rollback transaction操作将整个触发器以及触发它的T-SQL语句一并回滚(不需显示声明begi...
        
阅读全文
 
    
        
        
摘要:SQL SERVER乐观锁定和悲观锁定使用实例在实际的多用户并发访问的生产环境里边,我们经常要尽可能的保持数据的一致性。而其中最典型的例子就是我们从表里边读取数据,检查验证后对数据进行修改,然后写回到数据库中。在读取和写入的过程中,如果在多用户并发的环境里边,其他用户已经把你要修改的数据进行了修改是非常有可能发生的情况,这样就造成了数据的不一致性。解决这样的办法,SQL SERVER提出了乐观锁定...
        
阅读全文
 
    
        
        
摘要:任何事务无论其隔离级别如何,都具有原子性。原子性和隔离级别是两码事。假定只有一种资源数据表上的“行“可以被锁定。锁只有共享锁和排他锁两种。锁的兼容性: SXS 10X 00事务的隔离级别:Read Uncommitted数据读取时不需要锁定Read Committed数据读取时需要共享锁定Repeatable Read数据读取时需要排他锁Serializable事务必须等同...
        
阅读全文
 
    
        
        
摘要:绪论SybasePowerDesigner(简称PD)是最强大的数据库建模工具,市场占有率第一,功能也确实十分强大,现在最新版本是15.1,已经支持最新的SQLServer2008等数据库,另外在PD15中还增加了好几种模型,界面也得到了进一步的美化,做出来的图更漂亮了。下面是一个在PD15中新建模型的窗口: PD本身除了进行数据库建模以外,还可以建业务模型、UML模型等,当然这些建模其他很多工具...
        
阅读全文
 
    
        
        
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t w...
        
阅读全文
 
    
        
        
摘要:CHARINDEX返回字符串中指定表达式的起始位置。 语法CHARINDEX ( expression1 , expression2 [ , 起始位置 ] ) REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE ( expression1 , expression2 , expression3)select * from T_SP_PRIC w...
        
阅读全文
 
    
        
        
摘要:索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。 通过索引,可以加快数据的查询速度和减少系统的响应时间,可以使表和表之间的连接速度加快。但是,不是在任何时候使用索引都能够达到这种效果。若在不恰当的场合下,使用索引反而会事与愿违。所以,在SQL Server数据库中使用索引的话,还是需要遵守一定的规则。 笔者觉得,主...
        
阅读全文
 
    
        
        
摘要:Sql Server查找临时表,并删除:ifexists(select*fromtempdb..sysobjectswhereid=object_id('tempdb..#temp'))droptable#temp
        
阅读全文
 
    
        
        
摘要:create table tb(材料费用 int,人工费用 int,机械费用 int,其他费用 int)insert into tb select 150,260,330,400godeclare @sql varchar(8000)set @sql=''select@sql=@sql+' union all select '''+name+''' as 费用类型,'+name+' as 数目 f...
        
阅读全文
 
    
        
        
摘要:当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响。处理这种情况的系统叫做“并发控制”。并发控制的类型通常,管理数据库中的并发有三种常见的方法:保守式并发控制 - 在从获取记录直到记录在数据库中更新的这段时间内,该行对用户不可用。 开放式并发控制 - 只有当实际更新数据时,该行才对其他用户不可用。更新将在数据库中检...
        
阅读全文
 
    
        
        
摘要:有时候在一些系统中我们需要用SQL语句将一对多关系表中的数据以每条记录一行的形式进行显示。本文分别采用函数及游标的方法来实现该功能。示例表描述如下一张用户表及文档表现在想实现如下功能,查询出每个用户及其对应的文档名称的综合,如下结果userID userName DocNames1fengyan sql基础,asp.net入门2eflylab 精品美食注意到最后一列是类似统计。这就决定不能使用le...
        
阅读全文
 
    
        
        
摘要:预期读者 1. 初学者。 2. 想复习的人。 3. 原来学习并发觉得太复杂,没搞清楚,想以更简单的方式学习的人。 4. 懒得总结的人。 下面,我就以一个比较简单的方式来总结,和你们分享。:)目标 并发控制要做的是协调并发事务的执行,保证数据完整不受破坏,同时避免用户得到不正确的数据。主要目标有以下两个: 1. 保证事务的特性:ACID(Automicity,Consistency,Isolatio...
        
阅读全文