文章分类 - SQLSERVER
摘要:笔记15 DBCC database console command 主要维护数据库使用 1 --DBCC database console command 主要维护数据库使用 2 --3类 数据统计查看命令 维护操作命令 数据库验证命令 3 -----性能数据统计查看------------------------- 4 DBCC SHOW_STATISTICS('northwind.dbo.orders','customerid') --显示指定数据表的相关信息 5 GO 6 DBCC SQLPERF (LOGSPACE) --显示所有数据库的事务日志空间
阅读全文
摘要:笔记14 DBCC CHECKIDENT 的用法,主键自增列重新设置种子值 1 -- DBCC CHECKIDENT 的用法,主键自增列重新设置种子值 2 USE [pratice] 3 INSERT [dbo].[tabelcheckindent] 4 SELECT 'n' 5 GO 10 6 7 SELECT * FROM [dbo].[tabelcheckindent] 8 9 DELETE FROM [dbo].[tabelcheckindent]10 11 USE [pratice]12 GO13 DBCC CHECKIDENT ([tabelcheckindent]
阅读全文
摘要:笔记13 DB_ID() 和 DB_NAME()函数1 --DB_ID() 和 DB_NAME()函数2 SELECT DB_ID('gposdb') AS dbid,DB_NAME(9) AS dbname
阅读全文
摘要:笔记12 datepart()与datename() 1 --datepart()与datename() 2 SELECT DATEPART(yyyy,'2012-08-09') 3 SELECT DATEPART(qq,'2012-08-09') --第3季度 4 SELECT DATEPART(mm,'2012-08-09') --8月 5 SELECT DATEPART(dd,'2012-08-09') --9日 6 SELECT DATEPART(wk,'2012-08-09') --第32个星期 7 SE
阅读全文
摘要:笔记11 CTE公用表表达式 1 --CTE公用表表达式 2 --http://blog.csdn.net/bluefoxev/article/details/6779794 3 --不能在 CTE_query_definition 中使用以下子句: 4 -- 5 --(1)COMPUTE 或 COMPUTE BY 6 -- 7 --(2)ORDER BY(除非指定了 TOP 子句) 8 -- 9 --(3)INTO10 --11 --(4)带有查询提示的 OPTION 子句12 --13 --(5)FOR XML14 --15 --(6)FOR BROWSE16 17 18 19 20 WI
阅读全文
摘要:笔记10 CROSS APPLY的应用:根据组名取出sales最大值的那个name 1 --CROSS APPLY的应用:根据组名取出sales最大值的那个name 2 declare @tb table([name] varchar(2),[group] varchar(2),[sales] int) 3 insert @tb 4 select 'aa','G1',3 union all 5 select 'bb','G1',5 union all 6 select 'cc','G2',4 uni
阅读全文
摘要:笔记9 over开窗函数实现 cross apply的功能 1 --over开窗函数实现 cross apply的功能 2 declare @tb table([name] varchar(2),[group] varchar(2),[sales] int) 3 insert @tb 4 select 'aa','G1',3 union all 5 select 'bb','G1',5 union all 6 select 'cc','G2',4 union all 7 select 'dd
阅读全文
摘要:公司系统的配置文件如果是命名实例使用下面这个 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 如果是默认实例使用下面这个 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
阅读全文
摘要:笔记71-徐 删除数据后释放数据页的方法 1 我delete了数据,SQLSERVER却没有完全释放空间,这不是空间泄漏吗?久而久之,我的数据库里会不会充斥着这些“没用”的页面, 2 3 把我的空间都浪费掉了?这倒不必担心,虽然这些页面没有被释放掉,但当表格里插入新的数据时,这些页面是会被重新使用的。 4 5 所以这些页面并没有被“泄漏”掉,会留给SQLSERVER重用的 6 7 如果真的看着这些页面碍事,而表格又不能整个删除掉,处理起来有时候倒有点费事。如果表格有聚集索引,重建/重组一下索引就能 8 9 释放这些页面,还是挺简单的。但是如果没有,可能就要重建一张新表,把数据从旧表里倒...
阅读全文
摘要:笔记8 COMPUTE BY的使用 根据卡类型 统计每种卡类型的总交易金额的平均值1 --COMPUTE BY的使用 根据卡类型 统计每种卡类型的总交易金额的平均值2 SELECT * FROM dbo.CT_FuelingData ORDER BY I_FD_TypeCode COMPUTE AVG(DE_FD_Amount )BY I_FD_TypeCode
阅读全文
摘要:笔记7 case when实现交叉表还有子查询 1 case when实现交叉表还有子查询 2 USE pratice 3 4 ;with maco as 5 ( 6 select *,row_number() over (partition by [A] order by (select 1)) as id from testpivot 7 ) 8 9 select A ,10 max(case id when '1' then B else null end) A1,11 max(case id when '2' then B else null end)
阅读全文
摘要:笔记6 case when的用法 统计洲际人口 1 case when的用法 统计洲际人口 2 SELECT * FROM table_a 3 SELECT SUM(population) AS '人口', 4 CASE country 5 WHEN '中国' THEN '亚洲' 6 WHEN '印度' THEN '亚洲' 7 WHEN '日本' THEN '亚洲' 8 WHEN '美国' THEN '北美洲' 9 WHEN '加拿大'
阅读全文
摘要:笔记5 T-SQL技巧case when then end的update语句 1 --T-SQL技巧case when then end的update语句 2 declare @T table (name varchar(1),taici int) 3 insert into @T 4 select 'a',1 union all 5 select 'b',2 union all 6 select 'c',3 union all 7 select 'd',4 union all 8 select 'e',5 9 1
阅读全文
摘要:笔记4 如果你连接到的SQLSERVER实例的机器有那台机器的local admin权限,就会显示绿色三角否则会显示白色圆点http://social.msdn.microsoft.com/Forums/ie/zh-CN/fafa590c-37a2-4f57-8985-171dbfe70482/1433sql?forum=sqlserverzhchshttp://social.msdn.microsoft.com/Forums/zh-CN/e4a3b2ab-7279-4882-9d5f-38a932fc2052/sql?forum=sqlserverzhchs另一个说法本地服务器是绿色,远程服
阅读全文
摘要:笔记70-徐 案例分析:连接池(connection pooling)与阻塞 连接池与SQLSERVER 1 --案例分析:连接池(connection pooling)与阻塞 连接池与SQLSERVER 2 3 --连接池与SQLSERVER 4 --从客户端建立一个SQL数据库连接,会包含若干个比较费事的步骤。 5 --首先,客户端要同SQL服务器建立一个物理连接(包括TCP socket或命名管道) 6 --两台机器相互握手,服务器分析客户端发来的连接字符串,进行身份认证, 7 --在SQL里建立连接,分配资源等。当客户端关闭连接时,SQL要清除这个 8 --SQL连接,两台机器会中..
阅读全文
摘要:笔记69-徐 程序端意外情况下SQLSERVER端可能导致的问题 1 --程序端意外情况下SQLSERVER端可能导致的问题:应用层事务未提交 例子使用VBScript语言写的程序 2 --前面这种没有及时清理事务的事务是由TSQL语句开启的,他导致阻塞危害可能 3 --还不会很大,因为连接池总会在下一次重用这个连接的时候将上一个事务回滚 4 5 --但是,有些程序员(例如:老张)会在应用层直接控制事务。例如在ADO.NET里 6 --可以对每个连接调用BeginTrans和CommitTrans方法,或者甚至直接调用 7 --System.Transaction接口,发起发布式事务让SQ..
阅读全文
摘要:笔记67-徐 死锁案例分析 P333 1 --死锁案例分析 P333 2 3 --先开启监视死锁的开关1222,让SQL遇到死锁时,在errorlog里打印出 4 --死锁的详细内容 5 6 DBCC TRACEON(1222,-1) 7 8 --这里使用范例表dbo.Employee_Demo_Heap 9 10 --这张表在EmployeeID和ManagerID字段上各有一个非聚集索引,但是没有聚集索引 11 12 13 --现在用下面脚本来模拟出一个死锁来。在一个连接里,运行下面语句,反复开启 14 --事务。在这个事务里,先修改一条NationalIDN...
阅读全文
摘要:笔记66-徐 从等待状态判断系统资源瓶颈 P341 1 --从等待状态判断系统资源瓶颈 P341 2 3 --系统资源瓶颈包括:内存,磁盘I/O,CPU,锁资源阻塞 4 5 --sys.sysprocesses 6 --在SQL2005和SQL2008里增加了三张DMV可以得到更详细的信息 7 8 --sys.dm_exec_requests 9 --返回有关在SQL中执行的每个请求的信息,包括当前的等待状态 10 11 12 --sys.dm_exec_sessions 13 --对于SQL中每个经过身份验证的会话都返回相应的一行。 14 --sys.dm_exe...
阅读全文
摘要:笔记65-徐 TempDB上的PAGELATCH 1 --TempDB上的PAGELATCH 2 3 4 --分清楚数据库里面的数据页面和系统页面 5 6 --需要解释的是,SQL不仅在数据页修改的时候加latch,在数据文件的系统页面上,例如 7 --SGAM、PFS、GAM页面发生修改的时候,也会加latch。这些latch在某些情况下也有可能 8 --成为系统瓶颈 9 10 --例如:当数据库创建一张新表的时候,SQL要为这张表分配存储页面,同时SQL也要11 --修改SGAM、PFS、GAM页面,把已经分配出去的页面标志成已使用。所以每创建一张12 --新表,SGAM、PFS、G...
阅读全文