自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

starseeker7的专栏

Time waits for no one~

  • 博客(83)
  • 收藏
  • 关注

转载 部署调用webservice的clr

参考:http://www.cnblogs.com/doll-net/archive/2009/10/16/SQL_Server_2005_CLR_Invoke_Web_Service.htmlhttp://www.cnblogs.com/jaxu/archive/2009/03/18/1415358.html--部署clr访问webservice--打

2016-06-08 19:44:42 680 1

原创 TSQL Parser

我们在进行TSQL开发或脚本检查时,经常因为代码过多,又不太可能花费太多时间反复检查,导致违反编码规范的脚本未被修正.这种情况下,我们就需要通过程序,对脚本通过程序解析,尽量排除一些常见的,易于程序发现的问题。这时我们就需要对TSQL语法进行语义解析工作,众所周知这时一个非常困难的工程,还好微软提供了专门用于TSQL解析的类库。下面将简述两种常见的语句解析类库的使用方法

2016-06-08 19:42:30 923

转载 ISNumeric 注意事项

今天一个朋友问了我一个问题,为什么在SQL Server中执行下面的语句会返回不应该的值。Select ISNumeric('1d00')        根据我们的理解,这个应该是返回为0的。这个值明显不是数字类型嘛。但是奇怪的是,SQL Server就是返回的1.                通过Google,发现了在SQLS

2016-06-08 19:41:15 1325

原创 将字符串时间转化为Datetime时,毫秒数发生变化

今天接到用户的需求,为什么我们将一个字符串的时间转化为Datetime时,毫秒数会发生变化。 具体表现如下:select convert(datetime,'2016-02-23 14:44:55.321')--2016-02-23 14:44:55.320select convert(datetime,'2016-02-23 14:44:55.328')--2

2016-06-08 19:40:13 2342

转载 使用TRY CATCH应该注意的一个小细节

最近看到一个文章,关于try-catch

2014-10-22 08:50:02 730

转载 NOT IN和NOT EIXTS的风险

原文出处: http://blog.csdn.net/dba_huangzj/article/details/31374037  转载请引用之前在论坛中见到一个针对in/exists的讨论,原帖懒得找了,这里介绍一下最近的学习小结:NOT IN和NOT EIXTS在对允许为null的列查询时会有一定的风险。特别是NOT IN,如果子查询包含了最少一个NULL,会出现非预期的结果。下面做一个

2014-08-23 16:48:49 640

原创 detach_AllDB

jiUSE [master]GO--Detach database SET NOCOUNT ON DECLARE @DbName sysnameDECLARE Cur_Dtch CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLYFOR SELECT name FROM sys.databases WITH (NOLOCK)

2014-08-22 09:29:31 528

转载 将表中数据导出为insert脚本

有时候根据业务需求我们需要把一个表的数据,跨服务器导入到其他同结构表中,我们一般会推荐采用bcp,SSIS,同步链,link server等办法。但是在数据量比较少,目的端又无同步链或者link server的时候,其他方式或许显得略为繁琐下面是一个网上看到的比较方便的将表中数据转换为insert脚本的SQL,保存再这里作为参考原帖地址:http://raresql.com

2014-06-17 11:15:32 838

转载 表变量特点补充,为什么表变量在大数据情况下普遍性能不佳

之前有写一篇文章http://blog.csdn.net/starseeker7/article/details/8621046今天看到论坛上在讨论这个东西,顺便更详细的补充一下--2014/06/07补充:我们再优化SQL时,经常会发现若对表变量填充大量数据,性能往往会不如使用临时表做相同动作那么到底是上面的哪一点造成这个情况的呢?最近看到一篇文章比较详细的测试了一下

2014-06-07 17:24:30 1386

原创 获取数据库缓存中的执行计划

我们经常会遇到同一个--获取包含固定语句的所有缓存中的执行计划use master go select c.plan_handle,  c.usecounts, c.cacheobjtype, c.objtype, t.text, qp.query_plan, c.size_in_bytes as '对象所耗费的字节' ,*from sys.dm_exe

2014-06-06 17:31:02 654

原创 关于两个update语句互相死锁的显现,加深我们对锁的了解

前段时间在msdn的论坛上看到邹老大对一个问题的回复,觉得对锁更了解了,先二话不说“拿来”记录学习下。原帖地址:http://social.msdn.microsoft.com/Forums/zh-CN/6559504d-c546-45a6-89e2-eeb75041b3e7/-?forum=sqlserverzhchs首先是环境脚本

2014-06-05 15:45:02 13664

原创 获取MSSQL当前Server的CPU 与 memory使用率

工作时候遇到用户需要查询资源使用情况没有远程桌面权限就取

2014-05-14 16:26:44 3380

转载 T-SQL之变量导致索引无效/何谓SQLSERVER参数嗅探

关于变量导致索引无效的情况,在使用工作中其实经常遇到,我看到一篇写的不错的文章就转载过来丰富我的收藏噶。转载自:http://www.cnblogs.com/slade/archive/2012/04/29.htmlT-SQL之变量导致索引无效 (一)问题提出1,在开发中是否遇到一个情况,就是在where后写明具体值时可以用到索引,使用变量时却不行了呢?2,是否

2014-03-12 08:40:57 2905

转载 关于MSSQL误删/误更新数据后的回滚

原帖地址:http://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/针对被delete命令误删的数据回滚操作,但要注意该办法对single模式下用途不大因为这个办法是基于对sys.fn_dblog(NULL, NULL) 的解析作为起点的若delete命令的日志已经被截断,无法被sys.fn_dbl

2014-02-07 17:37:12 6116

转载 为什么NOLOCK反而返回更少的数据

看到一篇关于nolock可能造成的奇怪的问题的分析。这里很详细的阐述了,现象与产生的原因以及解决办法,并介绍了关于allocation scan与range scan的特性。挺有用的分享下NOLOCK的作用有的时候还是很强大的。通常我们的理解是NOLOCK不需要申请S锁,从而避免因他人做数据修改引起的阻塞,也就是说NOLOCK理应返回更多的数据才对(比如新插入的行还没提交,

2013-09-24 10:59:10 662

原创 关于获取服务器基本信息SQL

SET NOCOUNT ONIF NOT EXISTS( SELECT * FROM sys.configurations with(nolock) WHERE name like 'xp_cmdshell' AND value_in_use = 1)BEGIN EXEC sp_configure 'sh

2013-09-20 08:46:56 714

转载 DB级buffer与IO 查看

--buffer中缓存每个数据库所占的bufferSET TRAN ISOLATION LEVEL READ UNCOMMITTEDSELECT ISNULL(DB_NAME(database_id), 'ResourceDb') AS DatabaseName , CAST(COUNT(row_count) * 8.0 / (1024.0) AS DECIMA

2013-04-13 10:42:18 714 1

转载 浅谈SQL Server中的三种物理连接操作

三种SQL最常见得物理连接,我们需要深入了解他们得原理以及适用场景。这样我们可以根据实际情况,优化脚步,使得查询引擎采用更高效得连接方式。这篇大牛得文章图文并茂深入浅出得描述了这3个连接,保存在这里后续回顾用。简介    在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loo

2013-03-22 16:21:02 543

原创 ctrl +c失效情况

今天用户让我帮忙查询一个值,我查询了半天无法查询出来,脚本如下--查出1行数据select * from TB where sonumber =154532157 --空白无数据select * from TB where sonumber =154532157 and TrackingNumber = N'028114715084630'--查出1行数据select *

2013-03-22 10:48:17 2433

转载 hash join提示错误

今天在论坛看到大家讨论的一个问题,觉得比较有用,就记下来免得忘记了首先是一个人发现他的脚本使用inner hash join的时候提示错误Msg 8622, Level 16, State 1, Line 1Query processor could not produce a query plan because of the hints defined in this query.

2013-03-21 17:08:39 2937

转载 数据库管理员丢失解决

转贴来源:http://blog.csdn.net/dba_huangzj/article/details/7927266问题:开启SQLServer2008之后,本地管理员组不再需要手动添加,因为在安装的时候已经默认添加。你甚至只需要把当前用户手动添加到本地管理员用户即可。这意味着,特别是如果你不使用混合认证模式(或者忘记了sa密码),你可能会被拒绝登录自己的SQLServer实例。我遇

2013-03-19 11:06:05 746

原创 修改JOB跳过某一step

1.     Background:Receiving the request from Timothy, we need to skip step4 in the Job Job_EIMS.UP_EIMS_AccrualJob_Step2.Then we modified the step3 setting of the job. It seems thatthe job wil

2013-03-15 08:29:47 941

原创 关于表值函数的性能消耗

--create functionalter function dbo.fn_Test( @VendorNumber varchar(10) , @ItemNumber varchar(10) ) RETURNS @SharedItemList TABLE (ItemNumber CHAR(25), SharedItemNumber CHAR(25)) AS

2013-03-13 15:23:39 1274

原创 获取同步链agent堵塞的表以及具体条数

--用于详细查看当前实例下,受到堵塞的 表名、 命令行数、影响行数--获取堵塞的影响行数 SELECT [article_id] ,[agent_id] ,[UndelivCmdsInDistDB] ,[DelivCmdsInDistDB] FROM [distribution].[dbo].[MSdistribution_status]o

2013-03-09 17:02:12 588

原创 获取当某个表所有索引使用情况

用于分析是否有不被使用的索引DECLARE @dbName SYSNAME ,@schemaName SYSNAME ,@ObjectName SYSNAME ,@sql NVARCHAR(max)SELECT @dbName='DBName' ,@schemaName='schemaName' ,@ObjectName='tbName'SET @sql

2013-03-02 08:50:31 564

原创 独特的deadlock(仅update语句也能造成死锁)

最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题。这个死锁看上去难以理解。而分析过程中,又使用了很多分析SQL Server死锁的典型方法。记录下来整个分析过程还是很有意义的。 问题重现步骤:经过提炼,问题重现的步骤非常简单,在SQL 2008上可以很容易地重现。 1.         首先,创建一张表格,上面有一个clustered index,两个non-cluste

2013-02-28 16:16:05 6501

原创 表变量特点

表变量特点 第一、表变量不一定常驻内存。在内存压力大的时候,属于表变量的页可以被放入tempdb。以下是一个例子描述表变量在tempdb中所占空间。第二、其次,如果您创建了一个表变量,它会像一个常规的DDL操作一样将元数据储存在系统目录中第三,事务处理和锁定语句。表变量不能参与事务处理和锁定,以下示例说明了这一点如果回滚的事务里涉及表变量,表变量的数据不

2013-02-28 10:56:25 874

原创 察看当前实例每个DB的table大小信息/察看某个DB中包含table大小信息

-- =====================================================-- Script for:-- table size information query.-- single database, can Ignore schema name-- =================================================

2013-02-26 09:23:50 467

转载 获取SP运行花费时间最长前10位/TSQL语句已经运行了多久

获取SP运行花费时间最长前10位SELECT TOP 10 a.object_id, a.database_id,schema_name(obj.schema_id) as 'prc schema', OBJECT_NAME(a.object_id, database_id) 'proc name',a.cached_time, a.last_execution_time, a.tot

2013-02-19 15:26:15 686

转载 查看buffer pool使用

--1.Buffer Pool的内存主要是由那个数据库占用 :SELECT cast(count(row_count)*8.0/1024.0 as decimal(12,2)) as cached_pages_mb,CASE database_id WHEN 32767 THEN 'ResourceDb' ELSE db_name(database_id)

2013-02-17 16:57:47 599

转载 Tempdb怎么会成为性能瓶颈?

我曾经遇到过这样一个性能问题。一个客户反映,他的SQL Server会在某一段时间里,突然变得非常慢。最后他不得不重启SQL Server服务。而重启以后,问题就消失了。客户在出现问题的那段时间里,收集了主要的系统动态管理视图,以及性能监视器里和SQL Server有关的那些计数器。顺便说一句,这台服务器有16颗CPU。 Sys.dm_exec_requests是检查SQL Server性

2013-02-17 16:11:19 405

转载 如何监测谁用了SQL Server的Tempdb空间?

Tempdb系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用。在现在的SQL Server里,其使用频率可能会超过用户的想象。如果Tempdb空间耗尽,许多操作将不能完成。下面是3种 常见的 tempdb使用对象用户对象(user_object_reserved_page_count)用户对象由用户显式创建。这些对象可以位于用户会话的作用域中

2013-02-17 15:17:27 405

转载 事务复制清除的故障分析

众所周知,创建分发数据库时,清除事务复制(Transactional Replication cleanup)会在分发服务器上,通过下列SQL Server 代理任务来清除不再需要的数据:代理程序检查代理程序历史记录清除事务清除分发清除历史记录清除过期订阅清除分发清除代理程序在所有订阅服务器都接收到事务后,分发清除代理程序(Distribution clean up: distri

2013-02-16 13:50:46 845

转载 别使用嵌套事务

公司之前一直存在一个规范,就是禁止嵌套事务的使用,一直不太明白为什么,试了下应该是无法控制回滚,今天看大牛的博客发现,问题远远不只如此。具体总结下来是以下3个问题1、内层事务回滚,只能回滚全部事务,无法控制单一事务回滚2、内层事务提交后,回滚外层事务,也会把内层提交了的事务一起回滚3、因为2的原因,只要整个事务不完全提交,日志空间都无法被释放    嵌套事务可不会像

2013-02-05 11:40:42 18898 1

转载 SQL Server 2012中的ColumnStore Index尝试

看到大牛写得一篇文章,转载过来自己学习下,后续升级到2012后就可以应用了。先说结论,这个技术对更改不频繁或者,仅周期性更改,且对性能要求很高得表,确实有很大得提升。简介     费了半天劲,今天终于装好SQL Server2012了。按照MSDN中的新特性资料(Columnstore Indexes for Fast DW QP SQL Server 11)。尝试

2013-02-05 10:12:15 468

原创 关于count(*)得 非聚合索引 性能大于聚合索引性能研究

今天在回答别人问题得时候发现了这样一个问题经过以下 语句测试后 ,发现确实如此set statistics io on select COUNT(*) from dbo.tb_Info with(index(PK_tb_Info))select COUNT(*) from dbo.tb_Info with(index(IX_TB_INFO))set statistics

2013-02-04 17:07:34 788

原创 创建索引注意事项

1、索引不能创建在超过900bytes的字段上若强行创建会提示Warning! The maximum key length is 900 bytes. The index 'IX_test_tony_col1' has maximum length of 1000 bytes. For some combination of large values, the insert/update

2013-02-02 15:08:51 2514

原创 SQL产生BCP脚本

WITHDATA AS(SELECT publication_name = N'', publisher = N'ServerSource.DBName.dbo.TBName', subscriber_server = N'ServerTarget', subscriber_database = N'DBName', subscriber_schema = N'dbo

2013-02-02 14:14:22 564

原创 print超过长度的字符串

在SSMS中print会自动截断varchar超过8000.nvarchar(4000)的字符串而select出的结果粘贴又会去掉换行符,可读性很低,下面脚本将解决这个问题。declare @var varchar(max)=''declare @tb table(id int identity(1,1), Dsc nvarchar(max))select @var='

2013-02-01 09:39:40 1389

原创 获取identity的几种方法

根据业务需要,慎用标识值获取函数    获取刚插入记录的标识值有三种方式,必须理解清楚它们的区别,否则很容易获取到错误的标识值:@@IDENTITY     这是最常用的,它返回当前会话的所有作用域的最后一个标识值。但是若你的插入语句触发了一个触发器,这个触发器也产生一个标识值,则@@IDENTITY返回的是触发器产生的标识值,而不是你的插入语句产生的标识值SCOPE_

2013-01-31 09:58:53 1008

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除