![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL技术
文章平均质量分 65
starseeker7
这个作者很懒,什么都没留下…
展开
-
整理關於DBlink使用 数据库间连接方法
整理下以前的知識,非絕對正確的,只是自己的總結在SQL2005中使用DBlink方式進行跨服務器訪問,更加安全,且可以針對連接進行安全設定。以下是發起訪問的服務器中設置--創建服務器連接exec sp_addlinkedserver mgfTS_lnk, , SQLOLEDB , 192.168.0.1--制定連接對象,與間接名稱exec原创 2009-03-31 13:38:00 · 1150 阅读 · 0 评论 -
Tempdb怎么会成为性能瓶颈?
我曾经遇到过这样一个性能问题。一个客户反映,他的SQL Server会在某一段时间里,突然变得非常慢。最后他不得不重启SQL Server服务。而重启以后,问题就消失了。客户在出现问题的那段时间里,收集了主要的系统动态管理视图,以及性能监视器里和SQL Server有关的那些计数器。顺便说一句,这台服务器有16颗CPU。 Sys.dm_exec_requests是检查SQL Server性转载 2013-02-17 16:11:19 · 409 阅读 · 0 评论 -
表变量特点
表变量特点 第一、表变量不一定常驻内存。在内存压力大的时候,属于表变量的页可以被放入tempdb。以下是一个例子描述表变量在tempdb中所占空间。第二、其次,如果您创建了一个表变量,它会像一个常规的DDL操作一样将元数据储存在系统目录中第三,事务处理和锁定语句。表变量不能参与事务处理和锁定,以下示例说明了这一点如果回滚的事务里涉及表变量,表变量的数据不原创 2013-02-28 10:56:25 · 887 阅读 · 0 评论 -
独特的deadlock(仅update语句也能造成死锁)
最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题。这个死锁看上去难以理解。而分析过程中,又使用了很多分析SQL Server死锁的典型方法。记录下来整个分析过程还是很有意义的。 问题重现步骤:经过提炼,问题重现的步骤非常简单,在SQL 2008上可以很容易地重现。 1. 首先,创建一张表格,上面有一个clustered index,两个non-cluste原创 2013-02-28 16:16:05 · 6515 阅读 · 0 评论 -
关于表值函数的性能消耗
--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 · 1278 阅读 · 0 评论 -
修改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 · 963 阅读 · 0 评论 -
数据库管理员丢失解决
转贴来源:http://blog.csdn.net/dba_huangzj/article/details/7927266问题:开启SQLServer2008之后,本地管理员组不再需要手动添加,因为在安装的时候已经默认添加。你甚至只需要把当前用户手动添加到本地管理员用户即可。这意味着,特别是如果你不使用混合认证模式(或者忘记了sa密码),你可能会被拒绝登录自己的SQLServer实例。我遇转载 2013-03-19 11:06:05 · 779 阅读 · 0 评论 -
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 · 3035 阅读 · 0 评论 -
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 · 2442 阅读 · 0 评论 -
浅谈SQL Server中的三种物理连接操作
三种SQL最常见得物理连接,我们需要深入了解他们得原理以及适用场景。这样我们可以根据实际情况,优化脚步,使得查询引擎采用更高效得连接方式。这篇大牛得文章图文并茂深入浅出得描述了这3个连接,保存在这里后续回顾用。简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loo转载 2013-03-22 16:21:02 · 546 阅读 · 0 评论 -
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 · 719 阅读 · 1 评论 -
为什么NOLOCK反而返回更少的数据
看到一篇关于nolock可能造成的奇怪的问题的分析。这里很详细的阐述了,现象与产生的原因以及解决办法,并介绍了关于allocation scan与range scan的特性。挺有用的分享下NOLOCK的作用有的时候还是很强大的。通常我们的理解是NOLOCK不需要申请S锁,从而避免因他人做数据修改引起的阻塞,也就是说NOLOCK理应返回更多的数据才对(比如新插入的行还没提交,转载 2013-09-24 10:59:10 · 671 阅读 · 0 评论 -
关于两个update语句互相死锁的显现,加深我们对锁的了解
前段时间在msdn的论坛上看到邹老大对一个问题的回复,觉得对锁更了解了,先二话不说“拿来”记录学习下。原帖地址:http://social.msdn.microsoft.com/Forums/zh-CN/6559504d-c546-45a6-89e2-eeb75041b3e7/-?forum=sqlserverzhchs首先是环境脚本原创 2014-06-05 15:45:02 · 13697 阅读 · 0 评论 -
表变量特点补充,为什么表变量在大数据情况下普遍性能不佳
之前有写一篇文章http://blog.csdn.net/starseeker7/article/details/8621046今天看到论坛上在讨论这个东西,顺便更详细的补充一下--2014/06/07补充:我们再优化SQL时,经常会发现若对表变量填充大量数据,性能往往会不如使用临时表做相同动作那么到底是上面的哪一点造成这个情况的呢?最近看到一篇文章比较详细的测试了一下转载 2014-06-07 17:24:30 · 1391 阅读 · 0 评论 -
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 · 649 阅读 · 0 评论 -
使用TRY CATCH应该注意的一个小细节
最近看到一个文章,关于try-catch转载 2014-10-22 08:50:02 · 733 阅读 · 0 评论 -
将字符串时间转化为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 · 2356 阅读 · 0 评论 -
事务复制清除的故障分析
众所周知,创建分发数据库时,清除事务复制(Transactional Replication cleanup)会在分发服务器上,通过下列SQL Server 代理任务来清除不再需要的数据:代理程序检查代理程序历史记录清除事务清除分发清除历史记录清除过期订阅清除分发清除代理程序在所有订阅服务器都接收到事务后,分发清除代理程序(Distribution clean up: distri转载 2013-02-16 13:50:46 · 862 阅读 · 0 评论 -
SQL Server 2012中的ColumnStore Index尝试
看到大牛写得一篇文章,转载过来自己学习下,后续升级到2012后就可以应用了。先说结论,这个技术对更改不频繁或者,仅周期性更改,且对性能要求很高得表,确实有很大得提升。简介 费了半天劲,今天终于装好SQL Server2012了。按照MSDN中的新特性资料(Columnstore Indexes for Fast DW QP SQL Server 11)。尝试转载 2013-02-05 10:12:15 · 471 阅读 · 0 评论 -
关于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 · 795 阅读 · 0 评论 -
處理過大的MSSQL2005的LOG辦法
1。detach 数据库 企业管理器: 数据库名----〉右键:tasks---〉detach 即可sql 语句是:EXEC sp_detach_db dbname, true; 2。删除掉该日志文件 数据库名log.ldf 文件(或重名)3。将数据库atach回来 (注意以单文件的形式) EXEC sp_attach_singl转载 2009-04-03 17:48:00 · 1572 阅读 · 0 评论 -
如何修改一個主鍵字段
--刪除原有主鍵alter table TempGroupT drop constraint PK_TempGroupT--修改需要修改的字段alter table TempGroupT alter column [Site] varchar(3) not null--為表重建主鍵ALTER TABLE TempGroupT ADD CONSTRAINT PK_TempGr原创 2009-04-03 17:55:00 · 727 阅读 · 0 评论 -
數據庫相關檢測修復常用語句
自己的收集的一些 數據庫相關檢測修復常用語句 --數據庫相關檢測手段積累--斷開對應數據庫所有其他用戶連接--返回当前用户进程的会话 ID、登录名和用户名。--获取连接SQL服务器的信息(詳細版--邹建)--查詢死鎖,解決死鎖--获取连接SQL服务器的信息--開啓/關閉單用戶模式--数据库检查/修復--數據表|索引 檢測/修復--------------原创 2010-02-04 14:52:00 · 1831 阅读 · 0 评论 -
常見索引操作
常見索引操作:--显示指定表的数据和索引的碎片信息--察看索引統計信息--察看對應表存在那些索引及相關信息--創建有名主鍵索引非聚集--創建表,同時創建主鍵索引--删除主键--創建索引--删除索引--重建索引--重建指定数据库中表的一个或多个索引--一个删除指定表的所有索引和统计的过程(周老大)----------------------------原创 2010-02-04 15:01:00 · 502 阅读 · 0 评论 -
MSSQL常用性能測試語句
自己收集的一些常用的MSSQL常用性能測試語句/*SQL Server所占用的内存除程序(即SQL Server引擎)外,主要包括缓存的数据(Buffer)和执行计划(Cache)SQL Server执行SQL语句的性能判定标准主要是IO读取数大小当SQL Server执行SQL 语句时,如果需要的数据已经在其内存中,则直接从内存缓冲区读取并进行必要的运算然后输出执行结果。如果数据原创 2010-02-04 14:51:00 · 1337 阅读 · 0 评论 -
SQLxml 常见用法
最近深入研究了下sql xml 的常见用法,顺便写个总结。当然和以往一样还是原创少,抄袭多- -嘛,,只是总结而已,请多多见凉,其中大量参考 近身剪 老大文章-0-。详细请参考apply 关键字的用法http://msdn.microsoft.com/zh-cn/library/ms175156.aspxXQuery查询http://blog.csd原创 2010-01-03 22:04:00 · 995 阅读 · 0 评论 -
遇到剪切板與EXCEL的雙引號問題
<br /> 前幾天踫到一個奇怪的問題,今天整理了一下與大家分享下。當然有高人看到了,還請指出解決辦法。<br /> <br />我們在操作SQL的時候經常會,直接在查詢結果的方格中,全選后 ctrl+c然後複製到EXCEL中去,用於暫存資料。<br />但那天我做這個操作時,踫到了個奇怪的現象。<br />我查詢結果有1100行,而粘貼到EXCEL后僅有900餘行。<br />詳細查詢后發現,字段發生錯位,導致原因是,一個字段内容開始処 存在“"” <br />應該是EXCEL本身對"的特殊原创 2010-09-13 11:13:00 · 2154 阅读 · 0 评论 -
修改存在同步的并且有CONSTRAINT的字段的操作顺序
同步中,添加或删除CONSTRAINT都会被同步到目的端,但删除时目的端若不存在对应Constraint不会造成同步错误。但若add时,对应字段存在Constraint将会导致rep错误,必须删除后同步才能恢复正常。常用修改包含constraint的字段,我们推荐采用下面方式1.drop df on all subs2.drop df on source server3.alt原创 2013-01-30 14:13:23 · 436 阅读 · 0 评论 -
nvarchar与varchar转换导致问题
nvarchar更改类型为varchar会导致双字符(中文或特殊符号)全部为问号,更改类型需特别注意。经过DBCC IND(TBName, TBName, 1) DBCC TRACEON(3604)DBCC PAGE(TBName, 1,399,1) 对比可以发现,,,nvarchar字段alter为varchar字段后,数据页面内容已经完全改变,无法恢复原创 2013-01-30 14:52:56 · 2995 阅读 · 0 评论 -
MSSQL2008下查看结构变化监控,Schema Change History
DBA经常会被问到:我们的对象(表,视图,函数,存储过程等)被意外删除(修改),我想知道是谁干的?什么时候做的?从那个HostName连接过来的?是ApplicationName是什么?如何查看?1. SSMS自带的SchemaChange History功能a) Right click on database, forwhich you want to vie原创 2013-01-30 13:45:47 · 531 阅读 · 0 评论 -
sqlprofile监控SP常用事件
对于无法运行的多层次的数据库性能问题查询,可以通过sqlprofile监控抓取事件: SQL:stmtcompleted(SQL脚本调用完成);RPC:Completed(远程存储过程调用完成);SP:Completed(存储过程中SQL语句调用完成)过滤:IO,CPU>1000,login,hostname,spid(统一个存储过程运行时应用同一spid)其显示因为是原创 2013-01-30 14:08:38 · 995 阅读 · 0 评论 -
关于MSSQL2008后续新版本需要注意的内容
收集一些MSDN中有备注,说明可能后续版本会被删除的用法禁止使用类型text/ntext/image ,应使用varchar(max)/nvarchar(max)/varbinary(max),根据是否有存储多国语言数据的需求确定,这些类型在 SQL Server 的未来版本中将会删除禁止使用 CREATE DEFAULT 来创建默认约束,应该使用 ALTER TABL原创 2013-01-31 09:50:43 · 355 阅读 · 0 评论 -
获取identity的几种方法
根据业务需要,慎用标识值获取函数 获取刚插入记录的标识值有三种方式,必须理解清楚它们的区别,否则很容易获取到错误的标识值:@@IDENTITY 这是最常用的,它返回当前会话的所有作用域的最后一个标识值。但是若你的插入语句触发了一个触发器,这个触发器也产生一个标识值,则@@IDENTITY返回的是触发器产生的标识值,而不是你的插入语句产生的标识值SCOPE_原创 2013-01-31 09:58:53 · 1015 阅读 · 0 评论 -
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 · 569 阅读 · 0 评论 -
别使用嵌套事务
公司之前一直存在一个规范,就是禁止嵌套事务的使用,一直不太明白为什么,试了下应该是无法控制回滚,今天看大牛的博客发现,问题远远不只如此。具体总结下来是以下3个问题1、内层事务回滚,只能回滚全部事务,无法控制单一事务回滚2、内层事务提交后,回滚外层事务,也会把内层提交了的事务一起回滚3、因为2的原因,只要整个事务不完全提交,日志空间都无法被释放 嵌套事务可不会像转载 2013-02-05 11:40:42 · 18918 阅读 · 1 评论 -
创建索引注意事项
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 · 2544 阅读 · 0 评论 -
ISNumeric 注意事项
今天一个朋友问了我一个问题,为什么在SQL Server中执行下面的语句会返回不应该的值。Select ISNumeric('1d00') 根据我们的理解,这个应该是返回为0的。这个值明显不是数字类型嘛。但是奇怪的是,SQL Server就是返回的1. 通过Google,发现了在SQLS转载 2016-06-08 19:41:15 · 1339 阅读 · 0 评论