摘要: 准备工作createtabledbo.ta(idvarchar(10),cchar(10))goinsertdbo.taselectROW_NUMBER()over(orderbyc1.name)id,'x'fromsys.columnsc1crossjoinsys.columnsc2gocreateindexindex1ondbo.ta(id)godbccfreeproccachego接下来要用select *from ta where id='1'的方式执行两次,看看是否重用了存储过程dbccfreeproccachegoDECLARE@valuevarch 阅读全文
posted @ 2012-01-05 19:08 qanholas 阅读(348) 评论(0) 推荐(0) 编辑
摘要: Instant Initialization是NTFS文件系统的特性,可以让文件快速的初始化,显著提高SQLSERVER的数据文件扩张和RESTORE的速度。SQL Server内部无法控制Instant Initialization特性,如果想使用,需要授权SQL Server启动账户Perform Volume Maintenance Tasks的权限(本地管理员默认拥有此权限)。如果SQL Server服务处于运行状态,则需要重启后才能生效。我们可以通过trace flag 3004, 3605查看SQLSERVER是否使用了这个特性。代码如下:dbcctraceon(3004,3605 阅读全文
posted @ 2012-01-05 19:00 qanholas 阅读(553) 评论(0) 推荐(0) 编辑
摘要: An extended stored procedure (xp) is a dynamic link library that runs directly in the address space of SQL Server and is programmed using the SQL Server Open Data Services API. You can run extended stored procedures from the Query Analyzer, for example, just as you would normal stored procedures. Ex 阅读全文
posted @ 2012-01-05 17:47 qanholas 阅读(225) 评论(0) 推荐(0) 编辑
摘要: SCOPE_IDENTITY、IDENT_CURRENT和@@IDENTITY是相似的函数,因为它们都返回插入到标识列中的值。IDENT_CURRENT不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT返回为任何会话和作用域中的特定表所生成的值。有关详细信息,请参阅IDENT_CURRENT(Transact-SQL)。SCOPE_IDENTITY和@@IDENTITY返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY只返回插入到当前作用域中的值;@@IDENTITY不受限于特定的作用域。例如,有两个表T1和T2,并且在T1上定义了INSER 阅读全文
posted @ 2012-01-05 17:31 qanholas 阅读(245) 评论(0) 推荐(0) 编辑
摘要: SQLServer2000提供了一个读取数据页结构的命令DBCC Page。该命令为非文档化的命令,具体如下:DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])具体参数描述如下:dbid 包含页面的数据库IDdbname 包含页面的数据库的名称filenum 包含页面的文件编号pagenum 文件内的页面printopt 可选的输出选项;选用其中一个值: 0:默认值,输出缓冲区的标题和页面标题 1:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表 2:输出缓冲区的标... 阅读全文
posted @ 2012-01-05 16:52 qanholas 阅读(315) 评论(0) 推荐(0) 编辑
摘要: sys.fn_dblog返回当前数据库日志的活动部分的内容usedb1goifexists(select1fromsys.tableswherename='t')droptabletgocreatetablet(colint)godbcctraceon(3505,-1)---disable automatic checkpoint behaviorhttp://support.microsoft.com/kb/815436/en-usgocheckpointgoselect[CurrentLSN],[PreviousLSN],[PreviousPageLSN],Partitio 阅读全文
posted @ 2012-01-05 16:43 qanholas 阅读(1336) 评论(0) 推荐(0) 编辑
摘要: DROPTABLET_TESTCREATETABLET_TEST(IDINTIDENTITYPRIMARYKEY,STATUSBIT)INSERTINTOT_TESTSELECT0GO100000INSERTINTOT_TESTSELECT1CREATEINDEXIXF_T_TEST_STATUSONT_TEST(STATUS)WHERESTATUS=1UPDATESTATISTICST_TESTwithfullscanDBCCFREEPROCCACHE--正常查询SELECT*FROMT_TESTWHERESTATUS=1--参数化查询SP_EXECUTESQLN'SELECT*FR 阅读全文
posted @ 2012-01-05 16:38 qanholas 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 1 找出效率低的语句SELECTTOP10qs.total_worker_time,qs.total_logical_reads,qs.last_logical_writes,qs.plan_handle,qs.execution_count,(SELECTSUBSTRING(text,qs.statement_start_offset/2+1,(CASEWHENqs.statement_end_offset=-1THENLEN(CONVERT(nvarchar(max),text))*2ELSEqs.statement_end_offsetEND-qs.statement_start_off 阅读全文
posted @ 2012-01-05 14:12 qanholas 阅读(298) 评论(0) 推荐(1) 编辑
摘要: SELECT CASE df.database_id WHEN DB_ID('distribution') THEN 'distDB' WHEN DB_ID('tempdb') THEN 'tempdb' --add other needed database ELSE 'otherDBs' END AS dbName , CASE df.type WHEN 0 THEN 'datafile' WHEN 1 THEN 'logfile' ELSE 'otherfile' 阅读全文
posted @ 2012-01-05 14:06 qanholas 阅读(341) 评论(0) 推荐(0) 编辑
摘要: CREATETRIGGER[ddl_trig_database]ONALLSERVERFORDROP_DATABASEASDECLARE@dbVARCHAR(209)SET@db=(SELECT'DatabaseDropped:'+EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','VARCHAR(229)'))RAISERROR(@db,16,1)WITHLOG 阅读全文
posted @ 2012-01-05 13:50 qanholas 阅读(269) 评论(0) 推荐(0) 编辑
摘要: CREATETABLETEST(c1INTIDENTITY,c2CHAR(4000)DEFAULT'a');GOINSERTINTOTESTDEFAULTVALUES;INSERTINTOTESTDEFAULTVALUES;INSERTINTOTESTDEFAULTVALUES;GOcreateindexindex1ontest(c1)SELECTsys.fn_PhysLocFormatter(%%physloc%%)AS[PhysicalRID],*FROMTEST;GOSELECTsys.fn_PhysLocFormatter(%%physloc%%)AS[Physical 阅读全文
posted @ 2012-01-05 13:35 qanholas 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一、Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明显,这样的设计不是很好。当多个应用程序的数据库部署在同一台服务器上的时候,应用程序共享tempdb,如果开发人员不注意对Tempdb的使用就会造成这些数据库相互影响从而影响应用程序。二 、Tempdb的特性1、tempdb中的任何数据在系统重新启动之后都不会持久存在。因为实际上每次SQLServer启动的时候.. 阅读全文
posted @ 2012-01-05 13:29 qanholas 阅读(2972) 评论(0) 推荐(0) 编辑
摘要: 'SQLServer:Buffer Manager\Page writes/sec' :Number of physical database page writes issued per second我们可以通过这个性能计数器(下文中简称PW)来观察SQLSERVER何时会将脏页(这里不包含日志)写回磁盘。文中讨论的脏页均为数据页,不包含脏日志(虽然SQLSERVER认为日志也是脏的…)Checkpoint: Checkpoint发生是,SQLSERVER会将脏页(包含了未提交事务脏页和已提交事务的脏页)写回磁盘。 Checkpoint的作用是缩短数据库恢复(recovery 阅读全文
posted @ 2012-01-05 12:34 qanholas 阅读(448) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示