-
多列复合索引的使用绕过微软sqlserver的一个缺陷
然而,微软sqlserver在处理这类索引时,有个重要的缺陷,那就是把本该编译成索引seek的操作编成了索引扫描,这可能导致严重性能下降举个例子来说明问题,假设某个表T有索引(cityid,sentdate,userid),现在有个分页列表功能,要获得大于某个多列复合索引V0的若干个记录的查询,用最简单表意的方式写出来就是V>=V0,如果分解开来,就是:cityid>@cityid0or(cityid=@cityid0and(sentdate>@sentdate0or(sentdate=@sentdate0anduserid>=@userid0))),当你写出上述查询时,你会期待sqlserver会自动的把上述识别为V>=V0类型的边界条件,并使用indexseek操作来实施该查询。然而,微软的sqlserver(2005版)有一个重要缺陷(其他的sqlserver如何还不得知),当它遇到这样sql时,sqlserver就会采用indexscan来实施,结果是您建立好的索引根本就没有被使用,如果这个表的数据量很大,那所造成的性能下降是非常大的...
数据库操作教程 2022-09-23 17:13:59 -
将mater库中的系统存储过程批量生成*.sql文件通用且非常实用
大家都知道系统存储过程是无法用工具导出的(大家可以试试>任务>生成SQL脚本)因为系统存储过程一般是不让开发人员修改的。需要知识:1、xp_cmdshell命令的使用2、sp_MS_marksystemobject标记系统存储过程的方法3、dos命令,如type,>>等4、bcp命令的使用复制代码代码如下:usemastergoifOBJECT_ID('pr_procToSql')isnotnulldropprocpr_procToSqlgocreateprocpr_procToSql(@服务器名varchar(100),@用户名varchar(100),@密码varchar(100),@pathvarchar(200),@databasevarchar(200),@sysprocint='0'--是否标记为系统函数1:是,0:否,@proc_namevarchar(100)=''--默认是所有,可以模糊搜索,@savetypevarchar(200)='.sql'--默认保存为sql脚本)as/*版本:v1作者:达摩日期:2012-04-13功能:1将mast...
数据库操作教程 2022-09-23 17:13:58 -
sql语句查询数据库中的表名/列名/主键/自动增长值实例
sql语句查询数据库中的表名/列名/主键/自动增长值----查询数据库中用户创建的表----jsj01为数据库名selectnametablenamefromjsj01....
数据库操作教程 2022-09-23 17:10:00 -
SQL2000中的默认sa帐号的修改与删除方法
现在用MSSQL的地方太多了,有很多做技术的个人电脑上也安装SQL专业版,因为它用的多,但用的人都知道,SQL有个超级用户sa,此用户默认情况下,它指派给固定服务器角色sysadmin,并不能进行更改。一般懂点安全问题的技术人员都会把这个密码修改掉,但修改再复杂的密码都不是绝对安全的,一些暴力破解软件,菜鸟都会用...
数据库操作教程 2022-09-23 17:09:48 -
N字符在SqlServer字段类型中的重要性概述
Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示如果还为了这个纠结,就直接看看后面的解说,做决定吧。一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的...
数据库操作教程 2022-09-23 17:08:22 -
SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
1、查询SQL中的所有表:SelectTABLE_NAMEFROM数据库名称.INFORMATION_SCHEMA...
数据库操作教程 2022-09-23 17:06:55 -
SQLSERVER数据库中的5173错误解决方法
昨天同事给你我一个有问题的数据库,叫我修复一下因为客户那边需要这个数据库,这个数据库只有一个mdf文件和一个ldf文件,当我附加数据库的时候报错,数据库是SQL2005附上有损坏的数据库文件:因为之前在论坛也遇到过,所以按照论坛的方法来解决,结果还是不行把ldf文件移到别的地方,然后附加的时候使用下面SQL语句重建事务日志文件我的数据库文件放在C:UsersAdministratorDesktop新建文件夹目录下复制代码代码如下:USE[master]GOCREATEDATABASE[AdventureWorks2012]ON(FILENAME=N'C:UsersAdministratorDesktop新建文件夹GPOSDB.mdf')FORATTACH_REBUILD_LOGGO报错内容:复制代码代码如下:1文件激活失败。物理文件名称'D:MSSSQLDataGPOSDB_log.LDF'可能不正确...
数据库操作教程 2022-09-23 17:06:35 -
SQLServer日期函数CAST和CONVERT以及在业务中的使用介绍
最近时间刚从客户端转入后台写服务,对于后台数据库以及服务的书写完全是个小白,所以最近写的肯定没有太多技术含量。首先把遇到的问题摆出来:还是那张错误上报表,字段主要有上报错误ID(ErrorID),上报人(ReportPerson),上报时间(ReportTime)精确到毫秒,现在要做的统计是:(1)统计一定时间内【起止时间精确到毫秒】(beginTime,endTime)每个人每天上报的错误个数(2)统计一定时间内【起止时间到精确到月】(beginTime,endTime)按月统计每个人上报的错误总数...
数据库操作教程 2022-09-23 17:06:21 -
SQL参数化查询的另一个理由命中执行计划
1概述SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL是需要通过编译器解释才能运行的(在这之间还要做SQL的优化)...
数据库操作教程 2022-09-23 17:05:00 -
SQLServer误区30日谈第7天一个实例多个镜像和日志传送延迟
误区#7:一个数据库可以存在多个镜像错误这个误区就有点老生常谈了。每一个主体服务器只允许一个镜像服务器...
数据库操作教程 2022-09-23 17:04:57