随笔分类 - mssql
摘要:SQL Server注:以下指标取自SQL Server自身提供的性能计数器。指标名称指标描述指标范围指标单位1.SQL Server中访问方法(Access Methods)对象包含的性能计数器全表扫描/秒(Full Scans/sec)指每秒全表扫描的数量。全表扫描可以是基本表扫描或全索引扫描。由于全表扫描需要耗费大量时间,因此全表扫描的频率过高的话,会影响性能。如果该指标的值比1或2高,应该分析设计的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。次数/秒2.SQL Server中缓冲器管理器(Buffer Manager)对象包含的性能计数器缓冲区高速缓存命中率 (Buf
阅读全文
摘要:Master 系统账号,角色; 实例参数 用户db位置 dmv 系统扩展spTempDB用户对象 .全局临时表 (##) .本地临时表 (#) .表变量内部对象 .工作表 (游标, 假脱机(eagel spool, lazy spool:http://www.scarydba.com/2009/09/09/spools-in-execution-plans/) .工作文件 (哈希联接) .排序结果(使用了sort_in_tempdb选项创建/重建索引, Group By,…)版本存储 .行版本 .MARS (多个活劢结果集) .在线索引操作 .触发器 .快照隔离级别model 用户db的模板,
阅读全文
摘要:select a.name 'Job名称',case when (c.freq_type=4 and c.freq_subday_type=4) then ('每'+convert(varchar,c.freq_subday_interval)+'分钟') when (c.freq_type=4 and c.freq_subday_type=8) then ('每'+convert(varchar,c.freq_subday_interval)+'小时') when (c.freq_type=4 and c.fre
阅读全文
摘要:--提取数字IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULLDROP FUNCTION DBO.GET_NUMBERGOCREATE FUNCTION DBO.GET_NUMBER(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^0-9]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN @SENDGO--测试PRINT DBO
阅读全文
摘要:大容量日志恢复模式的工作原理与完整恢复模式(完全记录所有事务)相比,大容量日志恢复模式只对大容量操作进行最小记录(尽管会完全记录其他事务)。大容量日志恢复模式保护大容量操作不受媒体故障的危害,提供最佳性能并占用最小日志空间。但是,大容量日志恢复模式会增加这些大容量复制操作丢失数据的风险,因为大容量日志操作阻止再次捕获对每个事务逐一所做的更改。如果日志备份包含大容量日志操作,则无法还原到该日志备份中的时点,而只能还原整个日志备份。在大容量日志恢复模式下,如果日志备份覆盖了任何大容量操作,则日志备份包含由大容量操作所更改的日志记录和数据页。这对于捕获大容量日志操作的结果至关重要。合并的数据区可使日
阅读全文
摘要:suspect_pages 表位于 msdb 数据库中,是在 SQL Server 2005 中引入的。用于维护有关可疑页的信息的 suspect_pages数据库管理员负责管理表(主要通过删除旧的行实现)。suspect_pages 表有大小限制,如果此表已满,则不会记录新的错误。若要防止此表填满,数据库管理员或系统管理员必须通过删除行来手动清除此表中的旧条目。因此,我们建议您定期删除或存档 event_type 为已还原或已修复的行或具有旧 last_update 值的行。若要监视对 suspect_pages 表执行的操作,可使用 Database Suspect Data Page 事
阅读全文
摘要:在非域环境下,配置SQL Server 2008 数据库镜像服务的时候,在最后一步(即下图中,点击"开始镜像"按钮之后),遇到报错1418错误,1418: 服务器网络地址 "tcp://xiaoxu:5022" 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。在“镜像服务器”的日志中有如下错误:Database Mirroring login attempt failed with error: 'Connection handshake failed. An OS call failed: (8009030c) 0
阅读全文
摘要:-- 数据库文件性能,文件io性能统计(必须重启sql server服务,才能清零该计数器),SELECT DB_NAME(vfs.DbId) DatabaseName, mf.name,mf.physical_name, vfs.BytesRead, vfs.BytesWritten,vfs.IoStallMS, vfs.IoStallReadMS, vfs.IoStallWriteMS,vfs.NumberReads, vfs.NumberWrites,(Size*8)/1024 Size_MBFROM ::fn_virtualfilestats(NULL,NULL) vfsINNER J
阅读全文
摘要:-- 查看性能记数器SELECT * FROM sys.dm_os_performance_counters-- 执行过的线程所遇到的所有等待(不是当前正在运行的线程, 为自上次重置统计信息或启动服务器以来累积的数据),可分析靠前的几个等待较高的事件。select * from sys.dm_os_wait_stats order by wait_time_ms desc该动态视图的细节,请查看帮助文档.-- 重置该动态视图DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);GO-- 正在等待某些资源的任务的等待队列select * fro
阅读全文
摘要:本文描述: 主数据文件损坏(或丢失), 而事务日志文件未损坏的情况下, 如何备份尾部事务日志(自上次备份日志,至发生损坏这段时间的事务日志). (当然,这么做的目的,是可以恢复数据库至损坏前的最近状态)。转自:http://sudeeptaganguly.wordpress.com/2011/04/15/taillogbackupwithoutdatafile//* Create Tail-log backup after a crash, if the primary data file is missing------------------------------------------
阅读全文
摘要:在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,结合我在做项目时的经历做一下汇总:1. SQL Server导入导出向导,这种方式是最方便的.导入向导,微软提供了多种数据源驱动,包括SQL Server Native Cliant, OLE DB For Oracle,Flat File Source,Access,Excel,XML等,基本上可以满足系统开发的需求.同样导出向导也有同样多的目的源驱动,可以把数据导入到不同的目的源.对数据库管理人员来说这种方式简单容易操作,导入时SQL Server也会帮你建立相同结构的Table.2. 用.NET
阅读全文
摘要:锁兼容性控制多个事务能否同时获取同一资源上的锁。如果资源已被另一事务锁定,则仅当请求锁的模式与现有锁的模式相兼容时,才会授予新的锁请求。如果请求锁的模式与现有锁的模式不兼容,则请求新锁的事务将等待释放现有锁或等待锁超时间隔过期。例如,没有与排他锁兼容的锁模式。如果具有排他锁(X 锁),则在释放排他锁(X 锁)之前,其他事务均无法获取该资源的任何类型(共享、更新或排他)的锁。另一种情况是,如果共享锁(S 锁)已应用到资源,则即使第一个事务尚未完成,其他事务也可以获取该项的共享锁或更新锁(U 锁)。但是,在释放共享锁之前,其他事务无法获取排他锁。下表显示了最常见的锁模式的兼容性。现有授予模式请求模
阅读全文
摘要:在SQL Server 2005/2008安装后,即记录了计算机名做为 "sql server服务器名".当修改计算机名时, 需要修改sql server中对应的服务器名, 否则将影响“发布/订阅”,“镜像集群”等功能。-- 检查SQL Server中的“服务器名[/命名实例名]”, 和当前真实的“计算机名[/命名实例名]”。如果修改了计算机名,则这两者即会不一致。select @@serverName, serverproperty('serverName')-- 将"服务器名", 修改为正确的计算机名EXEC sp_dropserve
阅读全文
摘要:USE masterGOIF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimalGOCREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256), @hexvalue varchar (514) OUTPUTASDECLARE @charvalue varchar (514)DECLARE @i intDECLARE @length intDECLARE @hexstring char(16)SELECT @charvalue =
阅读全文
摘要:1、现象、问题描述 客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”;检查对应的数据库服务器,日志显示“Autogrow of file '某数据库日志文件' in database '某数据库' was cancelled by user or timed out after 2391 milliseconds. Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.”2、关键过程分析 根据数据
阅读全文
摘要:前言本文通过一个Bug的分析、解决,概述了使用Lumigent Log Explorer对SQL Server的事务日志进行分析的方法,以及常见的数据库误操作后的恢复、撤销方法Bug描述网站的文章模块有一个评分的功能:用户选择1-5分,点击提交后,文章的评分次数(Stars) + 1、总分(StarTotal) + 分数、平均分(StarAvg) = 新总分 / 新评分次数文章页面显示用户的平均分以及评分次数评分功能中用户最多打5分,最少打1分,某日忽然发现有的文章平均分竟然大于5,很不可思议。出现这个问题,大致的原因大不过有:实现评分逻辑的页面没有验证传入的分数是否合法、有些用户直接提交他们
阅读全文
摘要:快速修复:DBCCCHECKDB('test',REPAIR_FAST)重建索引并修复:DBCCCHECKDB('test',REPAIR_REBUILD)如果必要允许丢失数据修复:DBCCCHECKDB('test',REPAIR_ALLOW_DATA_LOSS)DBCCCHECKALLOC(Transact-SQL)检查指定数据库的磁盘空间分配结构的一致性。http://msdn.microsoft.com/zh-cn/library/ms188422.aspxDBCCCHECKDB(Transact-SQL)通过执行下列操作检查指定数据库中
阅读全文
摘要:方法一:在配置数据同步的时候,要求相互同步的两台机器的数据库必须通过默认实例名称进行连接。如果你的默认实例已经删掉了,在当前实例上进行新建发布操作时候,会提示你: “由于未在SqlServer的此实例上安装复制组件,Microsoft SQL server 无法访问这些组件,请参阅SQL Server……”注意下面还有一个附加的提示,它的意思就是说默认实例名和当前的实例名称不一致。其实这个才是导致不能复制的主要原因。把它解决了,你就可以进行复制了。 产生的原因是因为安装完SqlServer之后,又修改了计算机的名称。 解决“SqlServer复制需要有实际的服务器名称才能连接到服务器。不支持通
阅读全文
摘要:UNIQUEIDENTIFIER做主键(Primary Key)是一件很方便的事情,在数据合并等操作中有不可替代的优势但是由于普通的GUID的分散性使得如果主键加上聚集索引(Clustered Index)会导致在插入记录时效率大大降低SQL SERVER 2005中新增了一个NEWSEQUENTIALID的函数,MSDN的解释是:在指定计算机上创建大于先前通过该函数生成的任何 GUID 的 GUID。NEWSEQUENTIALID() 不能在查询中引用。注:即只能做为数据库列的DEFAULT VALUE,不能执行类似SELECT NEWSEQUENTIALID()的语句只有当计算机没有网卡时
阅读全文
摘要:--一个字符串abc_dcdds_ds_dsggg,需要按下划线将其截取成四段 declare @col varchar(30) set @col='abc_dcdds_ds_dsggg' set @col=replace(@col,'_','.')select parsename(@col,4), parsename(@col,3), parsename(@col,2), parsename(@col,1) /*parsename ('object_name',object_piece )'object_name'
阅读全文