
SQL Server
文章平均质量分 70
土豆131421
兴趣是最好的老师
展开
-
SQL Server Service Broker
Service Broker 教程 http://msdn.microsoft.com/zh-cn/library/bb839489(v=sql.105).aspx完成单个数据库中的会话 http://msdn.microsoft.com/zh-cn/library/bb839495(v=sql.105).aspx完成数据库之间的会话 http://msdn转载 2013-08-02 15:07:03 · 722 阅读 · 0 评论 -
SQL Server 特殊字符 上标 下标
先来记录下今天看到的一个比较好玩的东西,之前有见过一次,今天逛论坛的时候又发现了:--ALT+小键盘0153=™--ALT+小键盘0169=©--ALT+小键盘0174=®--ALT+小键盘0177=±--ALT+小键盘0178=²--ALT+小键盘0179=³--ALT+小键盘0188=¼--ALT+小键盘0189=½ 文字就不多写了,直接上代码: --创原创 2013-08-05 18:14:37 · 2869 阅读 · 0 评论 -
SqlServer数据库性能优化详解
数据库性能优化详解 性能调节的目的是通过将网络流通、磁盘 I/O和 CPU时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量。为达到此目的,需要了解应用程序的需求和数据的逻辑和物理结构,并在相互冲突的数据库使用之间(如联机事务处理 (OLTP)与决策支持)权衡。对性能问题的考虑应贯穿于开发阶段的全过程,不应只在最后实现系统时才考虑性能问题。许多使转载 2013-08-20 16:45:09 · 1500 阅读 · 0 评论 -
数据库调优的方法有哪些
1.引言 数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。 数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对程序的应转载 2013-08-20 17:13:05 · 813 阅读 · 0 评论 -
SQL Server 自增列
1. 已有的列不能直接更改为自增列,要先删除该列:alter table test01drop column idalter table test01add id int identity(1,1) 2. 修改自增列的种子的方法--原来的表,id为2select * from test01;--name id--t11 1--t22 2--这里把表(t原创 2013-08-23 15:51:20 · 877 阅读 · 0 评论 -
微软改变数据访问策略 OLE DB再次转向ODBC
导读:本文介绍了微软改变数据访问策略的消息,ODBC展现了顽强的生命力,主要是因为多平台的数据库系统访问需求很大。关键词:ODBC OLE DB 数据访问策略 微软 SQL Server 最近微软公司发表了一个声明,听起来像是一个残酷的笑话。多年来,他们一直宣传ODBC(开放式数据库连接)是一种过时的技术,不应该再继续使用,即将被OLE DB(对象链接和嵌入数据库)所替转载 2013-08-23 14:11:18 · 731 阅读 · 0 评论 -
SQL Server--OUTPUT及OUTPUT...INTO... 在 INSERT、UPDATE 或 DELETE的用法
在INSERT、UPDATE、DELETE语句中使用OUTPUT得到语句影响的每行信息,今天我们来学习这个语法。1、OUTPUT_CLAUSE定义(语法参Transact-SQL 语法约定): ::={ [ OUTPUT INTO { @table_variable | output_table } [ ( column_list ) ] ] [ OUTPUT原创 2013-08-23 17:19:52 · 1347 阅读 · 0 评论 -
SQL Server--数据库中如何使用表值参数
在SQL Server 2005或更早的版本中的数据库中,表变量是不能作为存储过程的参数的。SQL Server 2008中的T-SQL功能新增了表值参数。利用这个新增特性,我们可以很方便的将一个表作为参数传给存储过程,减少了应用程序与SQL Server数据库服务器之间的交互,提升了程序性能。 在SQL Server 2005或更早的版本中的数据库中,表变量是不能作为存储过程的参数的原创 2013-08-23 17:18:41 · 1030 阅读 · 0 评论 -
SQL Server 2008R2 数据库出现“可疑”导致无法访问
日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停止数据库,从而导致Sql Server 2005数据库不正常中断,当再次打开数据库时会发现某些数据库会被标记为“可疑”(suspect),即在数据库名旁加上了黄色的惊叹号,这时数据库就不能再被打开了,但数据库的结原创 2013-08-26 09:41:53 · 3016 阅读 · 0 评论 -
SQL Server 的 SET XACT_ABORT ON | OFF;
USE AdventureWorks2008R2;GOIF OBJECT_ID(N't2', N'U') IS NOT NULL DROP TABLE t2;GOIF OBJECT_ID(N't1', N'U') IS NOT NULL DROP TABLE t1;GOCREATE TABLE t1 (a INT NOT NULL PRIMAR原创 2013-08-23 17:48:38 · 1178 阅读 · 0 评论 -
SQL Server Reporting Services 报错:报表服务器无法访问服务帐户的私钥
在更改过SQL Server Reporting Services的启动服务账号密码后会出现下面的错误:报表服务器在 HttpApplication 中遇到未处理的异常。 (rsUnhandledHttpApplicationError) 获取联机帮助报表服务器无法访问服务帐户的私钥。此密钥用于解密保护报表服务器数据库中内容的对称密钥。在对报表服务器服务帐户重置密码后,可能发生这种情况。原创 2013-08-26 15:33:56 · 7324 阅读 · 0 评论 -
SQL Server 中的嵌套事务与@@TranCount(转)
在处理事务的时候,一般都用RollBack Transaction来回滚,但是如果在嵌套事务中这样使用的话,就会出现错误。在SqlServer里,嵌套事务的层次是由@@TranCount全局变量反映出来的。每一次Begin Transaction都会引起@@TranCount加1。而每一次Commit Transaction都会使@@TranCount减1,而RollBack Transact转载 2013-09-06 01:50:50 · 1049 阅读 · 0 评论 -
SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问题
今天使用Merge语句时遇到了一个问题,当源表数据集为空时,merge就不工作了。下面举一个例子来具体说明一下:有两个表SourceTable为登陆表,TargetTable为授权表,如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客。sql语句如下:--SourceTable为登陆表,TargetTable为授权表--如果访问用户在登陆表中,更新授权表的授权级别,否原创 2013-09-29 13:38:55 · 853 阅读 · 0 评论 -
使用SQLIO评估数据库磁盘性能
对于DBA来说,安装SQLServer之前先要了解磁盘的性能,这个很重要。微软提供了SQLIO可以帮助我们在系统安装之前评估磁盘的性能。 1. 下载SQLIO并安装 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20163 2.修改SQLIO’s 配置文件 如果直接启动SQLI原创 2013-09-29 16:56:45 · 923 阅读 · 0 评论 -
Unable to begin a distributed transaction
What i have done is irrelevant, but i'll post it anyway.Ensure Distributed Transaction Coordinator service is running on both machies:Disable all MSDTC security on both machi翻译 2013-09-16 18:01:11 · 1024 阅读 · 0 评论 -
SQL Server里用Split函数分割字符串
这2天在写存储过程的时候发现SQL里没有Split函数很是不便,比如有时候存储过程接受了一个用逗号做分隔符的字符串,就需要用到Split了。本着不重复制造轮子的原则,先上网搜索了一下,果然已经有兄弟实现了Split方法并且无私共享了代码。CREATEFUNCTION dbo.Split(@Stringvarchar(8000), @Delimiter char(1))转载 2013-09-23 15:14:11 · 3016 阅读 · 0 评论 -
SQL Server 中关于EXCEPT和INTERSECT的用法
熟练使用SQL Server中的各种用法会给查询带来很多方便。今天就介绍一下EXCEPT和INTERSECT。注意此语法仅在SQL Server 2005及以上版本支持。EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。INTERSECT是指在两个集合中都存在的数据。测试如下:[c-sharp] view plaincopy原创 2013-09-27 14:49:50 · 608 阅读 · 0 评论 -
如何在未加入域的机器上使用集成认证来登陆SQL Server
一般使用SQL Server的集成认证时,都需要登陆进域,下面介绍一种不需要登陆域就可以使用域用户登陆SQL Server的方法。SQL Server Management Studio 2005和2008的快捷方式如下图: SQL Server 2008 x64: "C:/Program Files (x86)/Microsoft SQL Server/100/Tools/Bi原创 2013-09-27 17:44:10 · 1081 阅读 · 0 评论 -
SQL Server中关于的checkpoint使用说明
在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中。其实在我们进行insert, update, delete时,数据并没有直接写入数据库对应的mdf文件中,而是写入了缓存里,这有点像电驴,因为过于频繁的写入会使磁盘的寿命大大减小。 从上图可以直观的看出。只有当发生checkpoint时,数据才会被写入mdf数据文件。c原创 2013-09-27 17:45:02 · 858 阅读 · 0 评论 -
SQL Server 2008行数据和页数据压缩解密
SQL Server的性能主要取决于磁盘I/O效率,提高I/O效率某种程序上就意味着提高性能。SQL Server 2008提供了数据压缩功能来提高磁盘I/O。数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。数据压缩可以在两个级别上实现:行级别和页级别。页级别压缩包括行级别压缩。表和索引在创建的同时就可以压缩,也可以使用A原创 2013-09-27 17:25:33 · 765 阅读 · 0 评论 -
SQL Server 如何在运行时重编译存储过程
有两种方法动态重编译存储过程:1.在Create时加上RECOMPILE选项CREATE PROCEDURE dbo.PersonAge (@MinAge INT, @MaxAge INT) WITH RECOMPILE AS SELECT * FROM dbo.tblTable2.在执行时加上RECOMPILE选项EXEC dbo.PersonAge 65,70原创 2013-09-27 17:38:44 · 975 阅读 · 0 评论 -
SQL Server 行列转换示例
SQL Server的行列转换功能非常实用,但是由于其语法不好懂,使很多初学者都不愿意使用它。下面我就用示例的形式,逐一展现Pivot和UnPivot的魅力。如下图 由于近期优快云的图片服务器不稳定,如果图片挂了,请读者访问图片原地址:http://img242.ph.126.net/4isS79TpI8jxQViyLD410Q==/2136958023189057751.jpg原创 2013-09-27 17:49:42 · 486 阅读 · 0 评论 -
在SQL Server中使用自定义数据类型来规范数据库字段变量
我们在设计数据库或是设计表时,经常会遇到同一个字段出于某种原因出现在不同表中的情况。比如SchoolName varchar(50),出现在tblSchoolBase、tblSchoolReport、tblSchoolExpert……表中。这样就很难保证在不同表中SchoolName字段的一致性。比如有些表中是varchar(32),有些是char(32)等。数据类型的不一致会导致数据内容截断,无原创 2013-09-27 17:04:40 · 1020 阅读 · 0 评论 -
SQL Server 优化存储过程的七种方法
优化存储过程有很多种方法,下面介绍最常用的7种。1.使用SET NOCOUNT ON选项我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数。使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量。2.使用确定的Schema在使用表,存储过程,函数等等时,最好加上确定的Schema。这样可以使SQL Server直接找到对应目标,避原创 2013-09-27 17:40:41 · 551 阅读 · 0 评论 -
SQL连接字符串大全
自己看吧。市面上能找到的大部分数据库都在这里了。 http://www.connectionstrings.com/附个图。无图无真相。转载 2013-09-29 10:59:36 · 481 阅读 · 0 评论 -
使用SQLServer模板来写规范的SQL语句
如果你经常遇到下面的问题,你就要考虑使用SQL Server的模板来写规范的SQL语句了:SQL初学者。 经常忘记常用的DML或是DDL SQL 语句。 在多人开发维护的SQL中,每个人都有自己的SQL习惯,没有一套统一的规范。 在SQL Server Management Studio中,已经给大家提供了很多常用的现成SQL规范模板。SQL Server Management S原创 2013-09-29 11:03:00 · 861 阅读 · 0 评论 -
SQL Server数据库自动处理外键关系的存储过程
最近总在做数据迁移的工作。做过类似工作的朋友都知道,数据迁移时,表之间的外键约束实在是让你头疼的事。因为你必须要确定表迁移的顺序,否则迁移过程中,总是在报外键约束的错误。即使你把表之间的外键临时drop了,迁移数据后,再create时,就会发现由于数据的不一致,导致外键已经无法创建成功了。 根据我的经验,如果迁移的数据不是那么重要的话或者说允许表中有些不一致数据存在的话,那么不必drop和原创 2013-09-29 09:45:12 · 619 阅读 · 0 评论 -
在SQL Server 事务中使用Savepoints来保存提交点
在SQL Server中使用rollback会回滚所有的未提交事务状态,但是有些时候我们只需要回滚部分语句,把不需要回滚的语句提到事务外面来,虽然是个方法,但是却破坏了事务的ACID。其实我们可以使用SQL Server中的Savepoints来解决上述问题。示例如下:1.先建立测试表: CREATE TABLE [dbo].[ttt]( [Id] [int] NULL原创 2013-09-29 11:06:55 · 760 阅读 · 0 评论 -
SQL Server中如何存储具有层次关系的表
SQL Server是关系型数据库,适合存储二维表格的关系型数据,不适合存储具有层次关系的数据,那么如何利用SQL Server存储如下图所示的树型层次关系呢?目前利用SQL Server存储树型关系数据比较成熟的方案是利用主键+外键的方式,即主键存储一个唯一Id值,外键存储此Id的父节点Id值,如果此节点无父节点,则为null。表设计如下:Create Database Test原创 2013-09-29 11:13:52 · 599 阅读 · 0 评论 -
SQL Server 中.与::的区别
SQL Server中调用方法时,经常遇到.或是::两种调用方法,其中. 是实例调用方法,::是静态调用方法。如果大家对C#语法熟悉的话,. 对应C#中调用实例方法,:: 对应C#中的static方法。下面给出一个SQL Server的实例,下面的SQL运行在2008环境下:DECLARE @g geography; SET @g = geography::Parse('LINESTR原创 2013-09-29 11:36:48 · 568 阅读 · 0 评论 -
SQL Server 中对XML数据的五种基本操作
1.xml.exist 输入为XQuery表达式,返回0,1或是Null。0表示不存在,1表示存在,Null表示输入为空 2.xml.value 输入为XQuery表达式,返回一个SQL Server标量值 3.xml.query 输入为XQuery表达式,返回一个SQL Server XML类型流 4.xml.nodes 输入为XQuery表达转载 2013-09-29 11:54:53 · 494 阅读 · 0 评论 -
如何对SQL Server中的XML数据进行insert、update、delete
SQL Server 2005/2008增加了对XML数据的支持,同时也新增了几种操作XML的方法,本文主要以SQL Server 2008为例介绍如何对XML数据进行insert、update、delete。 SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(repla转载 2013-09-29 12:04:56 · 724 阅读 · 0 评论 -
理解SQL Server中索引的概念,原理以及其他
简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识,这些知识写一本小书也不为过。所以本文并不会深入讨论这些主题。转载 2013-10-24 12:53:50 · 511 阅读 · 0 评论 -
理解SQL SERVER中的逻辑读,预读和物理读
在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻辑读,预读和物理读的概念.我觉的还是写一篇博文能把这个问题解释清楚。 SQL SERVER数据存储的形式 在谈到几种不同的读取方式之前,首先要理解SQL SERVER数据存储的方式.SQL SERVER存储的最小单位为页(Page).每一页大小为8k,SQL SERVER对于页的读取是原子性,要么读完一页,要转载 2013-10-24 11:09:26 · 507 阅读 · 0 评论 -
SQL Server 性能基线和监控 (powershell )
就讲讲监控那些值,基线抓的是那些值。如何做告警环境:windows 2008r2,sql server 2008r2 sp1性能基线: cpu: \Processor(_Total)\% Processor Time \Processor(_Total)\% Privileged Time \SQLServer:SQL Statistics\Batch转载 2013-10-24 15:17:47 · 1006 阅读 · 0 评论 -
SQL Server 联接提示、查询提示、表提示
分类: 学习笔记:性能优化、高可用性、DMV/DMF 2012-09-04 16:13238人阅读 评论(0)收藏 举报joinmergesql server优化目录(?)[-]将表提示指定为查询提示筛选索引提示使用 NOEXPAND将表提示用作查询提示SQL Server的查询优化器在select查询执行的时候产生一个高效的查询执行转载 2013-10-24 18:12:01 · 1380 阅读 · 0 评论 -
表的连接方式:NESTED LOOP、HASH JOIN、MERGE JOIN(修改)
表连接方式及使用场合NESTED LOOP 嵌套循环连接 由两个for循环组成。不管什么连接,本算法都可以使用。连接的两个关系,分别称之为外层关系和内层关系,把数据块数大的关系作为外层关系,小的关系作内层关系。分为块嵌套循环连接(简单点说,就是把已经放在内存的两个关系块全部连接完成后再进行下一数据库块的比较,减少内存中数据块的IO)和索引嵌套循环连接(如果内层关系有索引,使用转载 2013-10-25 11:16:33 · 902 阅读 · 0 评论 -
看懂SqlServer查询计划
看懂SqlServer查询计划阅读目录开始SQL Server 查找记录的方法SQL Server Join 方式更具体执行过程索引统计信息:查询计划的选择依据优化视图查询推荐阅读-MSDN文章对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQL Server查询转载 2013-10-25 13:04:32 · 571 阅读 · 0 评论 -
sql server性能分析--索引使用效率评估
dmv分析索引的使用情况,包括扫描次数,更新次数,有利于你评估设计的索引使用效率,sql server 2005的确比2000在性能分析上提高很多。user_seeks : 通过用户查询执行的搜索次数。 个人理解:此统计索引seek的次数user_scans: 通过用户查询执行的扫描次数。 个人理解:此统计表扫描的次数,无索引配合user_lookups: 通过用户查询执行的查原创 2013-10-21 18:42:36 · 1785 阅读 · 0 评论 -
sql server性能分析--查看当前执行的SQL
SELECT [Spid] = session_Id, ecid, [Database] = Db_name(sp.dbid), [User] = nt_username, [Status] = er.status, [Wait] = wait_type, [Individual Query] = Su原创 2013-10-22 11:14:19 · 637 阅读 · 0 评论