Fanr

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  我的MSSQLDBA 日记

摘要:今天群里讨论查询是否产生日志,当然在用户数据库里面是不产生的,但是涉及到tempdb的查询呢?小弟认为是在tempdb产生了日志:USE tempdbDECLARE @lsn nvarchar(100)SELECT TOP 1 @lsn = [Current LSN]FROM fn_dblog (NULL, NULL) ORDER BY [Current LSN] DESC;select @lsnSELECT * FROM AppServerProcesses.dbo.DB_PerformanceCounter ORDER BY addtime DESCSELECT TOP 100 *FRO. 阅读全文
posted @ 2014-04-03 12:26 Fanr_Zh 阅读(466) 评论(0) 推荐(0) 编辑

摘要:看到群里的同志们在讨论alwayson的日志同步,还有日志在secondary redo之后是如何写入到日志的。关于alwayson的日志传输,可以看:http://blogs.msdn.com/b/psssql/archive/2011/04/01/alwayson-hadron-learning-series-how-does-alwayson-process-a-synchronous-commit-request.aspx我也想起微软关于镜像的日志同步并没有,详细的说明,在白皮书上面也只有几句话。根据这几句话我话了个流程图来做个总结 阅读全文
posted @ 2014-03-27 09:52 Fanr_Zh 阅读(399) 评论(2) 推荐(0) 编辑

摘要:背景:今天在群里发现在讨论,只要sql语句有空格,就会生成另外一个执行计划。一直没有对这个做过check。环境:sql server 2008r2,northwind 数据库 代码导入测试:测试脚本1,用于查看生成的执行计划,并清除计划,可以看得清楚一些:SELECT * FROM sys.dm_exec_cached_plans a CROSS APPLY sys.dm_exec_sql_text(a.plan_handle) CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) SELECT * FROM sys.dm_exe... 阅读全文
posted @ 2014-02-17 12:57 Fanr_Zh 阅读(802) 评论(1) 推荐(0) 编辑

摘要:注:这个说法是不成立的,问题已经解决,但是无法正确的定位到具体什么原因:[20140702]奇怪的应用程序超时背景: 开发通过应用程序的日志发现间歇性的出现,数据库连接超时原因: 只能大概猜测,没有碰到过这个问题,google,baidu也没有找出过问题。本人猜测是checkpoint的SLE... 阅读全文
posted @ 2014-01-17 16:50 Fanr_Zh 阅读(890) 评论(4) 推荐(1) 编辑

摘要:死锁的奇怪的地方:死锁设计到的表示heap表,但是对key发生死锁,但是对key进行等待,死锁设计到的hotbid,无法再sys.partitions查询到objectid(这个误判是我们有索引的重建,导致hotbid变化,无法再表中查找到)问题是出现在一个非聚集索引上,这个索引是key是uame,是走索引的,为什么和insert死锁呢线索:表中delete的where 字段,参数化传进来使用的是nvarchar,但是表中却是使用varchar死锁信息: (@Name nvarchar(400... 阅读全文
posted @ 2013-11-23 00:06 Fanr_Zh 阅读(809) 评论(5) 推荐(0) 编辑

摘要:表现:收到性能告警,LazyWrite严重超标,一般在100以上,正常情况下,LazyWrite为0,但是奇怪的是,当时的Free pages =312190左右,相当于2G空闲空间。OS的可用内存在1G左右,从ring_buffers也没有看到外部内存压力,下班之后发现,tempdb开辟了一些空间。原因:出现这个问题的原因,根据每5分钟抓取一次性能值看出,是在一个批量处理数据之后出现的。数据大概120W左右,大概的空间367MB。请教了一个资深DBA,他大概的意思是,大批量数据操作,导致数据页被逐出,现在有需要读取数据页,重新读入,发生LazyWrite。但是有一个地方解释不通的就是有大量的 阅读全文
posted @ 2013-09-19 13:16 Fanr_Zh 阅读(515) 评论(0) 推荐(0) 编辑

摘要:问题发生已经4天,一开始没在意,因为和性能影响不大。现象: context switch很大,并且伴随内核模式cpu较高,大概20%以上。间歇性出现,一分钟左右一次很有规律。内核模式cpu花费在idle线程上面,往往中断量也会上升。 process explorer发现是中断引起。问题分析过程: google到国外称这种现象为中断风暴,就是一下子中断变得非常多。 原本还想用xperf来跟踪问题:http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/ ... 阅读全文
posted @ 2013-07-06 12:07 Fanr_Zh 阅读(1520) 评论(0) 推荐(0) 编辑

摘要:今天碰到了Intra-Query Parallel Thread Deadlocks 简单的说就是并发查询把自己给锁住了。原理: 在并发查询运行是,有一个生产者和一个消费者,生产者等待消费者产生数据,而消费者等待生产者处理完数据。本来是不应该出现死锁的情况的。出现死锁就是因为sql server 有bug,但是修补这个bug可能风险太高所以一直没有修补。实例: 贴上我今天抓到的intra-Query Parallel 死锁 ... 阅读全文
posted @ 2013-07-04 10:21 Fanr_Zh 阅读(580) 评论(0) 推荐(0) 编辑

摘要:今天有人问我关于物理顺序和逻辑顺序的事情,就像到了这个话题页碎片:就是IAM页中叶子页的下一页和页头中该页的下一页不相同,那么就是碎片逻辑顺序:就是索引的叶子页中通过上一页下一页形成的顺序物理顺序:就是IAM中分配的顺序DROP TABLE dbo.t_indexgoCREATE TABLE t_index (id INT PRIMARY KEY ,VALUE CHAR(1000))GOINSERT INTO t_index VALUES(1,'1')INSERT INTO t_index VALUES(2,'2')INSERT INTO t_index VAL 阅读全文
posted @ 2013-05-14 11:27 Fanr_Zh 阅读(673) 评论(0) 推荐(1) 编辑

摘要:第一,确定安装了office 2007的访问插件2007 Office System Driver: Data Connectivity Components注意要选对语言版本第二,sql server启动程序是否对文件有访问权限第三USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB. 阅读全文
posted @ 2013-04-26 12:30 Fanr_Zh 阅读(386) 评论(0) 推荐(0) 编辑

摘要:背景 测试8000个字节后,varchar(max)会被切到溢出页中问题 在测试时发现SELECTDATALENGTH(REPLICATE('a',9000)) 长度只能为8000原因 常量字符在sql server里面为varchar(n) 1<=n<=8000 阅读全文
posted @ 2013-04-21 16:27 Fanr_Zh 阅读(262) 评论(0) 推荐(0) 编辑

摘要:问题: sql server 2005 之后 文件状态变为了7,DEFUNCT(僵死状态)问题原因: 一般都是因为一些不合法的操作引起的 如以下:CREATE DATABASE TestGOALTER DATABASE [Test] ADD FILEGROUP [TestFG]GOALTER DATABASE [Test] ADD FILE ( NAME = N'TestFile', FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\DATA\TestF 阅读全文
posted @ 2013-03-21 12:42 Fanr_Zh 阅读(349) 评论(0) 推荐(0) 编辑

摘要:问题描述: sql server 2005 之后 删除数据库文件之后,在元数据里面在背景: 一般在完全恢复模式下才会出现这个问题解决方法: 备份日志 阅读全文
posted @ 2013-03-21 11:02 Fanr_Zh 阅读(259) 评论(0) 推荐(0) 编辑

摘要:问题描述: 因为业务上的需要所以要对某些用户赋予表创建权限,当然不能让他瞎建。 所以把他控制在自己的schema下。解决方法: grant create table to user grant control on schema::name to user 这样用户就有了schema 建表的权限了。 阅读全文
posted @ 2013-03-19 11:02 Fanr_Zh 阅读(469) 评论(0) 推荐(1) 编辑

摘要:SQL Server 中存储过程,函数,触发器代码存放于sys.sql_modules对每个 SQL 语言定义的模块对象都返回一行。类型为 P、RF、V、TR、FN、IF、TF 和 R 的对象均有关联的 SQL 模块。在此视图中,独立的默认值,即 D 类型的对象也具有 SQL 模块定义。有关这些类型的说明,请参阅 sys.objects 目录视图中的类型列。列名数据类型说明object_idint包含对象的对象的 ID。在数据库中是唯一的。definitionnvarchar(max)用于定义此模块的 SQL 文本。NULL = 已加密。uses_ansi_nullsbit模块是使用 SET 阅读全文
posted @ 2013-01-25 09:27 Fanr_Zh 阅读(390) 评论(0) 推荐(0) 编辑

摘要:Open theregistry(regedit) on the local machine.Go toHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PerflibRight click on Perflib and select PermissionAdd LOCAL SERVICE with Full ControlRestart the Remote Registry Service (services.msc) 阅读全文
posted @ 2012-10-26 12:34 Fanr_Zh 阅读(284) 评论(0) 推荐(0) 编辑

摘要:背景: 朋友的提问原因: 数据库因机器名被修改无法成功发布问题处理办法: if serverproperty('servername') <> @@servername begin declare @server sysname set @server = @@servername exec sp_dropserver @server = @server set @server = cast(serverproperty('servername') as sysname) exec s... 阅读全文
posted @ 2011-10-12 16:41 Fanr_Zh 阅读(308) 评论(0) 推荐(0) 编辑

摘要:问题: 原因: 不详处理办法: 1.安装powershell 2.0 (WindowsServer2003-KB968930-x86-CHS.exe) 2.安装Baseline configuration analyzer 2.0(MBCA_Setup32.msi) 3.安装SQL Server 2008 r2 bpa 在安装之前 现在cmd 下运行:msiexec /i <MSI Name> SKIPCA=1 安装bpa,安装完成之后 运行powshell :1.Enable-PSRemoting。 2.winrm set winrm/config/winrs `@`{MaxSh 阅读全文
posted @ 2011-08-17 12:36 Fanr_Zh 阅读(661) 评论(0) 推荐(0) 编辑

摘要:问题: 在profile 过滤 设置了 object_name 但是profiler 还是其他对象的sql语句原因: 因为跟踪的事件中没有object_name 因此无法过滤 因为 使用的这两个事件导致 该问题解决方法: 选择有object_name 的事件跟踪 阅读全文
posted @ 2011-08-15 18:00 Fanr_Zh 阅读(347) 评论(0) 推荐(0) 编辑

摘要:问题: 主数据库设置镜像时,报错: 消息1418,级别16,状态1,第1行 服务器网络地址"TCP://10.0.3.227:7024"无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。原因: 不明,估计是数据库出现恢复分支的关系解决办法: 重新做一遍 数据库镜像,从头到尾 阅读全文
posted @ 2011-08-15 14:08 Fanr_Zh 阅读(617) 评论(0) 推荐(0) 编辑