数据库
文章平均质量分 61
shuilv2000
乐观,积极
展开
-
@@IDENTITY与SCOPE_IDENTITY()
http://www.cnblogs.com/lovemyth/archive/2007/03/14/674584.html 在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返转载 2013-04-15 15:35:21 · 788 阅读 · 0 评论 -
varchar类型的索引该不该建呢?
个人测试了一下用的400万条的表select 各个字段where vacha(400)r类型的字段=***和select 各个字段where vachar类型的字段 like %***%和select 各个字段where vachar类型的字段 like ***%执行计划和消息中扫描计数 ,逻辑读取,物理读取 都一样的,删除语句没有试原创 2009-12-02 16:28:00 · 3596 阅读 · 1 评论 -
SQL Server 索引结构及其使用(四)[转]
SQL Server 索引结构及其使用(四) 作者:freedk 一、深入浅出理解索引结构 二、改善SQL语句 三、实现小数据量和海量数据的通用分页显示存储过程聚集索引的重要性和如何选择聚集索引 在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象:转载 2009-12-02 15:58:00 · 420 阅读 · 0 评论 -
SQL Server 索引结构及其使用(三)
实现小数据量和海量数据的通用分页显示存储过程 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的转载 2009-12-02 15:55:00 · 327 阅读 · 0 评论 -
SQL Server 索引结构及其使用(二)
一、深入浅出理解索引结构改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name=zhangsan and tID > 10000和执行:select * from table1 where tID > 10000 and转载 2009-12-02 15:53:00 · 364 阅读 · 0 评论 -
行转列
表A,两个字段: CreateDate, Detail--------------------------------------- CreateDate Detail2009-11-26 00:00:00.000 (A3-5)2009-11-26 00:00:00.000 (B3-2)2009-11-27 00:00:00.000 (A3-3)2转载 2009-11-27 15:06:00 · 605 阅读 · 0 评论 -
分页存储过程
2005 SQL code <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SQL 2005的ROW_NUMBER()实现分页功能DECLARE @pagenum AS INT, @pagesi转载 2009-11-27 14:47:00 · 396 阅读 · 0 评论 -
视图
SQL中使用视图的优点和缺点 SQL视图的优点在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短。 SQL视图具有如下的一些优点:1.简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。 2.安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也转载 2009-11-27 13:59:00 · 406 阅读 · 0 评论 -
6.3 用“数据库引擎优化顾问”来优化查询
为数据库项目创建正确索引并不简单。需要考虑许多因素:l 数据库的数据模型l 表中数据的数量和分布l 对数据库执行哪些查询l 查询发生的频率l 数据更新的频率为了帮助我们设计索引,SQL Server提供了一个称为“数据库引擎优化顾问”的工具。数据库引擎优化顾问需要一个工作负荷文件原创 2009-11-12 14:17:00 · 1242 阅读 · 0 评论 -
6.2.2.1 聚集索引
聚集索引是一种特殊的平衡树。这种平衡树与前面的平衡树相比,差别在于索引的叶子级。在聚集索引中,叶子级并不包括索引键和指针;它们就是数据本身。这个差异意味着数据并不存储在堆结构中。它们存储在索引的叶子级,并按索引键进行排序。这种设计具有两个优点:l SQL Server不需要依据指针来访问数据。数据直接存储在索引中。l 数据依据索引键排序,这是主要的原创 2009-11-12 09:49:00 · 411 阅读 · 0 评论 -
6.1 了解执行计划
SQL Server执行查询的时候,首先会确定执行该查询的最佳方式。这个决定包括如何且以何种顺序来访问和联接数据,如何且何时执行计算和聚合等等。这些工作由SQL Server中一个称为“查询优化器”的子系统负责。查询优化器使用数据分布的统计信息、与查询涉及的数据库对象相关的元数据、索引信息和其他因素来计算多种执行计划的可能性。对于每一种可能,查询优化器会基于数据的统计信息估计出执行的开销并选原创 2009-11-11 15:50:00 · 393 阅读 · 0 评论 -
用索引提高SQL Server性能
在微软的SQL Server系统中通过有效的使用索引可以提高数据库的查询性能,但是性能的提高取决于数据库的实现。在本文中将会告诉你如何实现索引并有效的提高数据库的性能。 在关系型数据库中使用索引能够提高数据库性能,这一点是非常明显的。用的索引越多,从数据库系统中得到数据的速度就越快。然而,需要注意的是,用的索引越多,向数据库系统中插入新数据所花费的时间就越多。在本文中,你将了解到微软的S原创 2009-11-11 14:24:00 · 296 阅读 · 0 评论 -
数据库性能优化(1)
where taskid = 36 //索引查找where taskid = 36//索引扫描写这种条件的时候最好注意数据库里字段的数据格式格式匹配会查找索引如果要进行类型转换,就会造成扫描行或索引的操作原创 2009-12-02 14:19:00 · 395 阅读 · 0 评论 -
SQL Server 索引结构及其使用(一)
SQL Server 索引结构及其使用(一) 作者:freedk一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的转载 2009-12-02 15:50:00 · 401 阅读 · 1 评论 -
MS SQL Server和MySQL区别
1 MySQL支持enum,和set类型,SQL Server不支持 2 MySQL不支持nchar,nvarchar,ntext类型 3 MySQL的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1) 4 MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的 5 MySQL需要为表指定存储类型 6 MS SQL识别转载 2010-02-25 15:52:00 · 633 阅读 · 0 评论 -
sql2008 查询某个表被那些存储过程用到
select distinct object_name(id) from syscommentswhere id in (select object_id from sys.objects where type ='P')and text like '%tablename原创 2011-08-04 09:33:26 · 705 阅读 · 0 评论 -
EXEC sp_executesql
<br />Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar',<br /> <br />出现这个提示,是因为变量@sql的类型有误,声明时应该写成nvarchar,如:<br />declare @sql nvarchar(50)<br /> <br /> Must declare the scalar variable<br />EXEC sp_executesql<br /> <br /><br />EXEC<原创 2011-05-23 17:09:00 · 2181 阅读 · 0 评论 -
数据库中的数据类型和c#的数据类型的映射表
<br /><br />对应关系表 <br />SQL Server 2000<br />C#<br />CodeSmith<br />数据类型<br />取值范围<br />数据类型<br />取值范围<br />空值代替值<br />数据类型<br />bigint<br />-2^63 (-9,223,372,036,854,775,807) 至 2^63-1 (9,223,372,036,854,775,807)<br />Int64<br />-9,223,372,036,854,775,808;转载 2011-05-20 11:55:00 · 1364 阅读 · 0 评论 -
Create Proceduce
CREATEPROCEDURE proName@param intAS/*******************************************************Comments*******************************************************/BEGINSETNOCOUNTONBEGINTRYBEGINTRANSACTION原创 2010-06-14 15:37:00 · 631 阅读 · 0 评论 -
查找一个表用在那些视图和存储过程中
查找一个表用在那些视图和存储过程中sp_depends dbo.si_client用相关性查不到的话,就用下面的语句查:select * from syscomments where text like %si_client%转载 2010-04-20 10:38:00 · 631 阅读 · 0 评论 -
用SQL去除表中某列的Identifer属性
sp_configure allow updates, 1 GO reconfigure with override GO update syscolumns set colstat = colstat & 0x0000 where id=object_id(表名) and name=列名 GO sp_configure allow updates, 0转载 2010-04-20 10:39:00 · 625 阅读 · 0 评论 -
浅谈数据库设计技巧(上)、(下)
一篇看过的很好的文章,终于搜出来了,保存:浅谈数据库设计技巧(上)http://www.knowsky.com/4937.html 说到数据库,我认为不能不先谈数据结构。1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法。尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主,但我还是深深赞同8年前老师的告诉我们的公式:计算机程序=数转载 2010-03-03 13:17:00 · 415 阅读 · 0 评论 -
数据库设计的黄金经验
通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段转载 2010-03-02 16:38:00 · 418 阅读 · 0 评论 -
数据库范式1NF 2NF 3NF BCNF实例分解
1NF每一列都是不可分割的基础数据项,实体中魔个熟悉不能有多个值活不能有重复属性。2NF数据库表中的每个实例或行必须可以被惟一地区分ID3NF要求一个数据库表中不包含已在其它表中已包含的非主关键字信息例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。转载 2010-03-02 15:37:00 · 4960 阅读 · 0 评论 -
SQL SERVER中的数据库恢复技术
SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Serve转载 2010-03-03 08:07:00 · 405 阅读 · 0 评论 -
大数据量高并发的数据库优化
一、数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的。 在一个系统分析、设计阶段,因为数据量较小,负荷较低。我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在转载 2010-03-02 16:11:00 · 549 阅读 · 0 评论 -
小结
在本章中,学习了SQL Server如何存储并访问索引或未被索引的数据。通过分析执行计划和I/O统计信息,已经认识到正确的索引对于优化性能的重要性。同时还学习了何时以及如何使用和维护不同的索引类型(在表6.1中区别列出)。表6.1 索引类型索引类型描 述聚集索引在索引的叶子级存储表行的数据。基于索引键提供快速排序原创 2009-11-12 15:03:00 · 369 阅读 · 0 评论 -
6.2.4 加速联接操作的索引
联接操作用于将表或者中间结果联接在一起。SQL Server使用三种类型的联接操作:l 嵌套循环联接 这种联接使用一个联接输入作为内部输入表,另一个联接输入作为外部输入表。嵌套循环会在每一个内部输入行进行一次并在外部输入中搜索相应的行。当外部输入联接条件的列上有索引的时候,SQL Server可以使用索引查找在外部输入中查找行。如果不存在索引,SQL Server就只原创 2009-11-12 13:39:00 · 368 阅读 · 0 评论 -
1.4.3 使用PowerDesigner建模
在数据库概念设计中已经分析了本系统中主要的数据应实体对象,通过这些实体可以得出数据表结构的基本模型,最终实施到数据库中,形成完整的数据结构。本系统将使用PowerDesigner工具完成数据库建模,使用的版本为12.5。使用该工具建模的步骤如下:(1)运行PowerDesigner,并在PowerDesigner主窗口中选择主菜单中的File/New命令,在打开的New对话框左侧Mode转载 2009-11-05 14:37:00 · 393 阅读 · 0 评论 -
有关触发器 1
INSTEAD OF执行触发器语句,但不执行触发触发器的 SQL 语句,比如试图删除一条记录时,将执行触发器指定的语句,此时不再执行 delete 语句。例:create trigger fon tblinstead of deleteas insert into Logs...IF UPDATE(列名)检查是否更新了某一列,用于 insert 或 update,不能用于 delet原创 2008-09-23 17:01:00 · 452 阅读 · 0 评论 -
有关触发器 2
create trigger 是关键字 on是关键字 table/view表示五笔哪个表或视图上执行触发器。for表示触发器为after触发器。after触发器只有在触发sql语句指定的所有操作都成功执行后才激发,在视图上不能afer触发器instead of 执行触发器而不是执行出发sql语句,从而代替触发该触发器语句的操作。{[delete],[insert],[update]原创 2008-09-23 17:12:00 · 494 阅读 · 0 评论 -
使用OPENDATASOURCE和OPENROWSET在不同类型的数据库之间导入导出数据
在异构的数据库之间进行数据传输,可以使用SQL Server提供的两个系统函数OPENDATASOURCE和OPENROWSET。 OPENDATASOURCE可以打开任何支持OLE DB的数据库,并且可以将OPENDATASOURCE做为SELECT、UPDATE、INSERT和DELETE后所跟的表名。如SELECT * FROMOPENDATASOURCE(SQLOLE原创 2008-07-02 17:57:00 · 1552 阅读 · 0 评论 -
SQL 分页支持查询 ROW_NUMBER() OVER (ORDER BY ReportID) AS RowNo
分页支持查询 SELECT * FROM (select *,ROW_NUMBER() Over(order by [id]) as row_index from [table] ) as [newtable] where row_index between [startindex] and [endindex] Sql Server 2000的自定义分页,但是在sql server原创 2008-07-01 11:15:00 · 2557 阅读 · 1 评论 -
SQL Server 2000中的触发器使用2
示例 在本例中,创建了一个德国客户表和一个墨西哥客户表。放置在视图上的INSTEAD OF触发器将把更新操作重新定向到适当的基表上。这时发生的插入是对CustomersGer表的插入而不是对视图的插入。 创建两个包含客户数据的表:SELECT * INTO CustomersGer FROM Customers WHERE Customers.Country =原创 2008-06-13 15:22:00 · 406 阅读 · 0 评论 -
获取语句执行时间的存储过程
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GOcreate proc getexecTime @strsql varchar(1000) as declare @d datetime set @d=getdate() --并在select语句后加: --select count(*)as 总行数 from operatorlog原创 2008-06-15 10:06:00 · 845 阅读 · 0 评论 -
SQL Server 2000中的触发器使用
可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器。当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中。inserted表是一个逻辑表,它包含了已经插入的数据行的一个副本。inserted表包含了INSERT语句中已记录的插入动作。inserted表还允许引用由初始化INSERT语句而产生的日志数据。触发器通过检查inserted表来确定是否执转载 2008-06-13 15:20:00 · 485 阅读 · 0 评论 -
sql 存储过程分页
系统存储过程sp_depends这个存储过程专门用来查看一个数据库对象引用了哪些其它的数据库对象 比如要看一个存储过程用到了哪些表及字段,就可以写: exec sp_depends sp_procedure 如果是表名要加引号 exec sp_depends MyTable 同样可以检查触发器 这个存储过程对于检查一个存储过程是很方便的,我们使用它就可以看到存储过程原创 2008-06-04 15:00:00 · 638 阅读 · 2 评论 -
SQL操作全集
下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATAB转载 2008-06-03 10:20:00 · 402 阅读 · 0 评论 -
详细讲解SQL Server索引的性能问题
在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的索引原创 2008-06-02 16:44:00 · 533 阅读 · 0 评论 -
sql数据库聚集索引和非聚集索引示例
create database myIndexDemogouse myIndexDemogocreate table ABC(A int not null,B char(10),C varchar(10))goinsert into ABCselect 1,B,Cunionselect 5,B,Cunionselect 7,B,Cunionselect原创 2008-06-02 17:03:00 · 699 阅读 · 0 评论