SQL Server
文章平均质量分 79
plean
这个作者很懒,什么都没留下…
展开
-
sql 2005 用户 sa 登录失败,该用户与可信SQL Server连接无关联 错误18452
http://www.cnblogs.com/sjrhero/articles/1814442.html解决方案'用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联 问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa转载 2012-07-31 17:19:14 · 701 阅读 · 0 评论 -
快照复制,SQL Server保障数据一致性的法宝
快照复制是在数据库之间对数据以及数据库对象进行复制并进行同步,以确保多个数据库之间一致性的一个法宝。简单的说,快照复制就是实现把一个数据库服务器上的数据通过网络传输到一个或多个地理位置不同的数据库服务器的过程。其实,对于快照复制,我们可以做一个形象的比喻。 <br /> 通常情况下,快照复制有如下特点。 <br /> 一是从快照这个名词中,我们也可以看出,照片是一个静态的过程,即只反映数据库某个时刻的状态,而不会反映数据库的一个变化过程。快照复制知识对数据库某个设定的时间的数据进行复制,转载 2010-12-06 10:39:00 · 689 阅读 · 0 评论 -
SQL SERVER 2005分页存储过程
<br />/****** Object: StoredProcedure [dbo].[Inovout_GetRecordFromPage] Script Date: 05/28/2007 15:12:11 ******/<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />-- =============================================<br />--转载 2010-12-03 11:36:00 · 353 阅读 · 0 评论 -
SQL Server 2005技术内幕:查询、调整和优化5——用C#实现SQL查询
<br />前面几篇文章作为自己的读书笔记(SQLServer 2005技术内幕:查询、调整和优化),基本都是书上的内容,没敢放在首页上。现在学习SQL Server都是理论知识,自己有个习惯,一直看理论看下去不容易吸收,所以看到“聚合”这一节决定写写代码,用来加深对SQL Server执行计划的理解。<br />首先看看我在在SQL Server中是怎么处理连接查询和分组查询的。<br /><br />代码--建表<br />if OBJECT_ID('tableA') is not null<br转载 2010-12-02 16:10:00 · 494 阅读 · 0 评论 -
SQL中的临时表和表变量
<br />SQL中的临时表和表变量<br />我们经常使用临时表和表变量,那现在我们就对临时表和表变量进行一下讨论.<br /><br /><br />临时表 <br /><br />临时表存储在TempDB数据库中,所有的使用此SQL Server 实例的用户都共享这个TempDB,因为我们应该确保用来存储TempDB数据库的硬盘有足够的空间,以使之能够自己的增长.最好能够存储在一个拥有独立硬盘控制器上.因为这样不存在和其它的硬盘I/O进行争用. <br /><br /> <br />转载 2010-12-07 10:04:00 · 431 阅读 · 0 评论 -
SQL Server语句优化详解
核心提示:关于执行计划的说明 在SQL Server查询分析器的Query菜单中选择Show ExecutionPlan,运行SQL查询语句,在结果窗口中有Grid、ExecutionPlan、Messages三个Tab。看图形形式的执行计划,顺序是从右到左,这也是执行的顺序。执行计划中的每一个图标表示一个操作 <br />关于执行计划的说明<br />在SQL Server查询分析器的Query菜单中选择Show ExecutionPlan,运行SQL查询语句,在结果窗口中有Grid、Ex转载 2010-12-03 17:21:00 · 568 阅读 · 0 评论 -
SQL Server 2005技术内幕:查询、调整和优化4——聚合
<br />对于聚合,SQL Server支持两种物理操作符:流聚合与哈希聚合。<br /> <br />标量聚合<br />标量聚合通过在选择列表中没有GROUP BY语句的聚合函数查询。标量聚合总是返回一个单一的行。SQL Server总是使用流聚合操作符实现标量聚合。<br />下面是个简单的例子:<br /> select COUNT(*) from [Orders]<br /> <br /> <br />这个查询产生下面的计划:<br /><br /> <br />流聚合操作符就是计算转载 2010-12-02 16:10:00 · 667 阅读 · 0 评论 -
SQL Server 2005技术内幕:查询、调整和优化2——Bookmark Lookup
<br />根据上篇知道非聚集索引不能覆盖表中所有的列。假设在非聚集索引关键字中有一个带有谓词的查询用来选择没有被索引覆盖的列。如果SQL Server在非聚集索引中进行查找,会丢掉一些必须的列。反之,如果在聚集索引中进行查找,会丢掉一些必须的列。反之,如果在聚集索引中进行扫描,则会获取所有的列。反之,如果在聚集索引中进行扫描,则会获取所有的列。但这要涉及表中的每一行,从而影响效率。例如下面这个查询。<br /> select [orderId], [customerid] from [Orders]转载 2010-12-02 16:09:00 · 314 阅读 · 0 评论 -
Create Index语句的Include作用
<br />在 SQL Server 2005 中,可以通过将非键列添加到非聚集索引的叶级别来扩展非聚集索引的功能。通过包含非键列,可以创建覆盖更多查询的非聚集索引。这是因为非键列具有下列优点:<br /><br />它们可以是不允许作为索引键列的数据类型。 <br /><br /><br />在计算索引键列数或索引键大小时,数据库引擎 不考虑它们。<br /><br /><br />当查询中的所有列都作为键列或非键列包含在索引中时,带有包含性非键列的索引可以显著提高查询性能。这样可以实现性能转载 2010-12-02 16:46:00 · 3409 阅读 · 0 评论 -
SQL Server 2005技术内幕:查询、调整和优化6——子查询
<br />子查询是强有力的工具,它可以书写许多表达式和许多复杂的查询。有很多不同类型的子查询和很多使用子查询的不同方式。<br />子查询是基本的连接。然而,一些子查询产生更复杂的连接使用非常不同寻常的连接特性。<br />在讨论具体例子之前,可以从不同方面对子查询进行分类。子查询采用3种计划来进行分类。<br />l 不相关 vs 相关子查询。不相关子查询不依赖外部查询,可以独立于外部查询而被评估,并且为外部查询的每一行返回相同的结果。只能从外部查询的上下文中来被估计,并且可能为外部查询的每一行返回不转载 2010-12-02 16:11:00 · 742 阅读 · 0 评论 -
SQL Server 2005技术内幕:查询、调整和优化3——连接
<br />连接<br />SQL Server支持三种物理连接运算符:嵌套循环连接、合并连接及哈希连接。在bookmark lookup示例中,已经接触了嵌套循环连接。没有最好的连接运算符,而且没有连接运算符好或不好。每一个连接运算符在正确的环境都会执行的很好,在错误的环境都会执行的不好。<br /> <br />嵌套循环连接<br /> 嵌套循环连接是最简单和最基础的连接方式。它对一个表(外表)的每行和另外一个表(称为内行)的每行比较,寻找满足谓词连接的行。这里的“内表”和“外表”指转载 2010-12-02 16:09:00 · 433 阅读 · 0 评论 -
SQL Server 2005技术内幕:查询、调整和优化1——扫描及查找
<br />想成为一名出色的架构师,数据库知识必不可少,拿起半年前买的一本数据库书<SQL Server 2005技术内幕:查询、调整和优化>,发现还是崭新的,真是惭愧。最近工作需要,牵扯到部分数据库的设计,所以狠下心来专心的看一遍。<br /> 本文没有任何原创内容,均来至书中个人认为比较重要的部分,对自己的学习有所总结,也可以造福像我一样渴望将自己从数据库菜鸟成为大虾的博友。<br /> 闲话少说,切入正题,扫描和查找时从表和索引中读取数据的迭代器,作为SQL Sever中所支持的最基本转载 2010-12-02 16:08:00 · 616 阅读 · 0 评论 -
SQL Server 2005 中的Row_Number()函数
<br />我们知道,SQL Server 2005和SQL Server 2000 相比较,SQL Server 2005有很多新特性。这篇文章我们要讨论其中的一个新函数Row_Number()。数据库管理员和开发者已经期待这个函数很久了,现在终于等到了!<br /><br /><br /> 通常,开发者和管理员在一个查询里,用临时表和列相关的子查询来计算产生行号。现在SQL Server 2005提供了一个函数,代替所有多余的代码来产生行号。<br /> 我们假设有一个资料库[EMPLOYEETES转载 2010-12-02 16:06:00 · 307 阅读 · 0 评论 -
五种提高 SQL 性能的方法
<br /> 有时,为了让应用程序运行得更快,所做的全部工作就是在这里或那里做一些很小调整。啊,但关键在于确定如何进行调整!迟早您会遇到这种情况:应用程序中的SQL查询不能按照您想要的方式进行响应。它要么不返回数据,要么耗费的时间长得出奇。如果它降低了报告或您的企业应用程序的速度,用户必须等待的时间过长,他们就会很不满意。就像您的父母不想听您解释为什么在深更半夜才回来一样,用户也不会听你解释为什么查询耗费这么长时间。(“对不起,妈妈,我使用了太多的LEFT JOIN。”)用户希望应用程序转载 2010-12-01 11:56:00 · 396 阅读 · 0 评论 -
怎样改进数据库的查询性能
<br />数据库的查询功能,其性能终究是有限的。即使我们对数据库进行了最优配置,对数据表设计再三斟酌,然而一旦面临海量数据,且返回结果集较大的时候,常规的查询语句就无能为力了。一般说来,当返回的结果集超过总数量的40%时,数据库层面上的优化就显得束手无策了。此时,我们应该考虑从sql语句和程序业务上着手。<br />在我参与开发的业务里,主要是在通讯行业,如移动、电信或网通,其中数据表数量最多的就是话单记录。通常都会在每个月达到百万级的数量,一年合计就达到千万级了。在这种情况下,除了进行定转载 2010-12-01 15:13:00 · 383 阅读 · 0 评论 -
DBCC DBREINDEX重建索引提高SQL Server性能
<br />大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据。索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数据指针来提高数据的索引。<br /> <br />1. 索引的体系结构<br />为什么要不断的维护表的索引?首先,简单介绍一下索引的体系结构。SQL Server在硬盘中用8KB页面在数据库文件内存放数据。缺省情况下这些页面及其包含的数据是无转载 2010-12-01 11:14:00 · 430 阅读 · 0 评论 -
SQL Server嵌套事务探讨 (转贴)
<br />转载自:http://www.cnblogs.com/kymo/archive/2008/05/14/1194161.html<br /> <br />先看一下SQL Server Online Help相关的说明Begin Transaction:标记一个显式本地事务的起始点。BEGIN TRANSACTION 使 @@TRANCOUNT 按 1 递增。 Rollback Transaction:将显式事务或隐性事务回滚到事务的起点或事务内的某个保存点。(嵌套事务时,该语句将所有内转载 2010-08-27 10:43:00 · 678 阅读 · 0 评论 -
SQL Server SQL for xml auto 添加根节点
今天从数据库中查询出xml,同时添加一个根节点做了如下测试:create table TestXmlQuery(ID int identity(1,1) not null,Name varchar(10))goinsert into [TestXmlQuery] (Name) values(测试1)insert into [TestXmlQuery] (Na转载 2010-05-12 10:22:00 · 1455 阅读 · 0 评论 -
SQL Server索引简介
<br />一、索引的概念<br /> 索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。<br /><br />二、索引的特点<br /> 1.索引可以加快数据库的检索速度 <br /> 2.索引降低了数据库插入、修改、删除等维护任务的速度 <br /> 3.索引创建在表上,不能创建在视图上 <br /转载 2010-12-07 09:22:00 · 587 阅读 · 0 评论 -
SQL在存储过程编写经验和优化措施
<br />1、开发人员如果用到其他库的Table或View,务必在当前库中建立View来实现跨库操作,最好不要直接使用“databse.dbo.table_name”,因为sp_depends不能显示出该SP所使用的跨库table或view,不方便校验。<br />2、开发人员在提交SP前,必须已经使用set showplan on分析过查询计划,做过自身的查询优化检查。<br />3、高程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点:<br />a)SQL的使用规范:<br /转载 2010-12-07 09:57:00 · 393 阅读 · 0 评论 -
数据库范式
http://blog.csdn.net/fantasylu/archive/2004/07/20/45794.aspx表在定义中被称为关系,记作R字段在定义中被称作属性模式:数据库中有三种模式,外模式,内模式,模式粗体是关键字的意思斜体为外键第一范式定义:如果关系R 中所有属性的值域都是单纯域,那么关系模式R是第一范式的那么符合第一模式的特点就有1)有主关键字2)主键不能为空,3)主键不能重复,4)字段不可以再转载 2011-04-08 15:49:00 · 439 阅读 · 0 评论 -
理解数据库范式
<br />http://blog.csdn.net/jianxiong8814/archive/2008/03/03/2142442.aspx<br /> <br />数 据库范式是数据库设计中必不可少的知识,没有对范式的理解,就无法设计出高效率、优雅的数据库。甚至设计出错误的数据库。而想要理解并掌握范式却并不是那 么容易。教科书中一般以关系代数的方法来解释数据库范式。这样做虽然能够十分准确的表达数据库范式,但比较抽象,不太直观,不便于理解,更难以记忆。<br /><br />本 文用较为直白的语言介转载 2011-04-08 15:48:00 · 433 阅读 · 0 评论 -
[sqlserver]timestamp 时间戳
<br />http://xthanks.blog.163.com/blog/static/7891148201131545556817/<br /> <br /> timestamp <br />SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次转载 2011-05-24 11:42:00 · 7596 阅读 · 0 评论 -
化解字符串不能超过8000的方法
<br /><!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;}转载 2011-05-23 14:36:00 · 514 阅读 · 0 评论 -
SQL Server 2005的output子句用法 output inserted.id
(http://hi.baidu.com/68tour/blog/item/9c129b60fc488e43ebf8f8de.html)有些时候我们需要得到刚刚插入数据库中的条目id,用于相关系统的更改,在以前我是使用select+top 1+desc 这种笨方法实现的,在没有并发的时候,还说的过去,但用户一多的话,这种方法就不行了,当然,你也可以考虑加锁的办法,但是对性能损耗太大,无意发现SQLServer 2005 的全新output子句,利用它,我们可以很轻松的得到刚刚插入的id号。具转载 2011-03-29 15:33:00 · 1245 阅读 · 0 评论 -
sql性能调试,set statistics io 和 set statistics time
<br />一个查询需要的CPU、IO资源越多,查询运行的速度就越慢,因此,描述查询性能调节任务的另一种方式是,应该以一种使用更少的CPU、IO资源的方式重写查询命令,如果能够以这样一种方式完成查询,查询的性能就会有所提高。<br /> 如果调节查询性能的目的是让它使用尽可能少的服务器资源,而不是查询运行的时间最短,那么就更容易测试你采取的措施是提高了查询的性能还是降低了查询的性能。尤其是在资源利用不断变化的服务器上更是如此。首先,需要搞清楚在对查询进行调节时,如何测试我们的服务器的资源使用转载 2010-11-17 10:52:00 · 503 阅读 · 0 评论 -
解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联
<br />解决方案:用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。<br /><br />今天进行身份验证时,又遇到这个问题,所以将我的解决方案整理一下,供有同样遭遇的朋友分享:<br /><br /><br />问题简述:<br />用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。<br /> 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 <br转载 2010-12-30 11:34:00 · 627 阅读 · 0 评论 -
T-SQL查询优化乱弹
T-SQL查询优化乱弹 收藏<br />以下是我整理的一些在SQL Server上实现高效查询的技巧和提示。经验之谈,不妥之处请大家指正。<br /><br /><br /><br />1. 关于索引<br /><br />谈数据库查询优化必然要讲索引。索引是个大话题。想要尽可能提高数据库系统的性能,设计良好的索引,必然要深入了解索引的结构,这个可以专门开一个话题来讨论(在《SQL Server 2005技术内幕:存储引擎》一书中这个话题是用专门的一章来讲的)。这转载 2010-12-28 13:56:00 · 709 阅读 · 0 评论 -
怎么捕获和记录SQL Server中发生的死锁
<br />经带在论坛上看到有人在问怎么捕获和记录死锁信息,在这里,我将自己的一些心得贡献出来,与大家分享,也请各位指正。<br /><br />我们知道,可以使用SQLServer自带的Profiler工具来跟踪死锁信息。但这种方式有一个很大的敝端,就是消耗很大。据国外某大神测试,profiler甚至可以占到服务器总带宽的35%,所以,在一个繁忙的系统中,使用profiler显然不是一个好主意,下面我介绍两种消耗比较少的方法。其中第二种的消耗最小,在最繁忙的系统中也可使用。第一种最为灵转载 2010-12-23 09:12:00 · 557 阅读 · 0 评论 -
SQL Server 表变量与临时表区别
<br />问题 1:为什么在已经有了临时表的情况下还要引入表变量?解答 1:与临时表相比,表变量具有下列优点:• 如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围结束时会自动清除这些表变量。• 与临时表相比,表变量导致存储过程的重新编译更少。• 涉及表变量的事务仅维持表变量上更新的持续时间。因此,使用表变量时,需要锁定和记录资源的情况更少。因为表变量具有有限的范围并且不是持久性数据库的一部分,所以事务回滚并不影响它们转载 2010-12-10 15:30:00 · 424 阅读 · 0 评论 -
sql server 数据库事务隔离级别
<br />SQL SERVER锁的机制<br /> SQL server的所有活动都会产生锁。锁定的单元越小,就越能越能提高并发处理能力,但是管理锁的开销越大。如何找到平衡点,使并发性和性能都可接受是SQL Server的难点。<br />SQL Server有如下几种琐:<br /><br />1、 共享锁<br />用于只读操作(SELECT),锁定共享的资源。共享锁不会阻止其他用户读,但是阻止其他的用户写和修改。<br /><br />2、 更新锁<br />更新锁是一种转载 2010-12-08 17:23:00 · 1026 阅读 · 0 评论 -
临时表vs.表变量以及它们对SQLServer性能的影响
<br />在临时表<br />create table #T (…)<br />和表变量<br />declare @T table (…)<br />之间主要有3个理论上的不同。<br /><br />第一个不同使事务日志不会记录表变量。因此,它们脱离了事务机制的范围,从下面的例子可显而易见:<br /><br />create table #T (s varchar(128)) <br />declare @T table (s varchar(128)) <br />insert int转载 2010-12-10 15:44:00 · 409 阅读 · 0 评论 -
事务嵌套的规则
<br />1、如果提交外部事务,也将提交内部所有嵌套事务<br />2、如果回滚外部事务,也将回滚内部所有嵌套事务,不管是否单独提交过内部事务<br />3、对于Commit Transaction或Commit Work的每个调用都应用于最后调用的Begin Transaction<br />4、Rollback Transaction语句的Transaction_Name参数引用一组命名嵌套事务内部事务是非法的,Transaction_Name只能引用最外部事务的事务名称转载 2010-12-09 15:35:00 · 633 阅读 · 0 评论 -
SQL SERVER 的SQL语句整理
<br />SQL SERVER 的SQL语句整理<br />一、基础 <br />1、说明:创建数据库 <br />CREATE DATABASE database-name <br />2、说明:删除数据库 <br />drop database dbname <br />3、说明:备份sql server <br />--- 创建 备份数据的 device <br />USE master <br />EXEC sp_addumpdevice 'disk', 'te转载 2010-12-07 09:21:00 · 467 阅读 · 0 评论 -
Sql Server性能计数器说明
<br />CPU:<br />1.System:%Total Processor Time 平均CPU利用率(还可以正对某个程序如SQLserver Process%Processor Time)<br />2.System:%Processor Queue Length 等待处理器处理的线程数(正常范围为cpu数的1~3倍)<br />3.Processor: %User Time 非内核级应用程序占用的时间(如SQLServer或反病毒软件)<br />4.Processor: %In转载 2010-12-06 16:42:00 · 1062 阅读 · 0 评论 -
在SQL Server中用索引视图查看性能状况
<br />在SQL Server中,视图是一个保存的T-SQL查询。视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全。但是,它并不占用数据库的任何空间。实际上,在你查询它之前,视图并不做任何事情。 <br /> <br /> <br />索引视图<br /> <br /> <br />在SQL Server 2000和2005中,你能够给视图增加索引。但是,如果视图只是一个保存在数据库中的查询定义,在运行前没有自己的数据,你如何给那个定义建立一个索引呢?嗯转载 2010-12-06 16:11:00 · 485 阅读 · 0 评论 -
使用 SQL Server 时需要经常用到的几个设置选项
1. SET DEADLOCK_PRIORITY 说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。 语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var } 参数:LOW 指定当前会话为首选死锁牺牲品。Microsoft® SQL Server™ 自动回滚死锁牺牲品的事务,并给客户端应用程序返回 1205 号死锁错误信息。 N转载 2010-12-07 10:05:00 · 433 阅读 · 0 评论 -
SqlServer特殊字符转换&查询
Codesnip, currently in used in my project: /// /// Encode the user-input (with special character) into SQL query statement/// special character like : ,[,/,_,%...etc/// /// user转载 2009-07-03 17:28:00 · 4191 阅读 · 1 评论 -
表组织和索引组织
表和索引作为 8 KB 页的集合存储。本主题介绍表页和索引页的组织方式。 表组织 下图显示了表的组织。表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行。堆页或聚集索引页在一个或多个分配单元中进行管理,具体的分配单元数取决于数据行中的列类型。 分区 在转载 2008-09-12 15:19:00 · 529 阅读 · 0 评论 -
sql Server 索引优化
聚集索引 , 表中存储的数据按照索引的顺序存储 , 检索效率比普通索引高 , 但对数据新增 / 修改 / 删除的影响比较大 非聚集索引 , 不影响表中的数据存储顺序 , 检索效率比聚集索引低 , 对数据新增 / 修改 / 删除的影响很小 如何让你的 SQL 运行得更快 ---- 人们在使用 SQL 时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略 了不同的转载 2008-09-10 17:41:00 · 452 阅读 · 0 评论