-
怎样操作SQL Server With As递归获取层级相关数据
所属栏目:[MsSql教程] 日期:2016-10-27 热度:136
副标题#e# WITH AS的含义 WITH AS短语,,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会 被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数 据的[详细]
-
怎样设置SQL Server行使Windows体系的Large-Page allocations
所属栏目:[MsSql教程] 日期:2016-10-27 热度:164
副标题#e# 今天,一个可改变控制的实现激使我去写这篇文章,这个可改变的控制就是允许运行在Windows200864位服务器上的SQLSERVER2005企业版上 使用跟踪标志834,SQLSERVER会利用 Large-Page allocations去构建内存中的Buffer Pool。 下面是我对 Large-Page[详细]
-
SQL SERVER分发署理在BULK INSERT时产生无穷守候怎样办理
所属栏目:[MsSql教程] 日期:2016-10-27 热度:153
场景: 服务器64位,SQL SERVER 2008R2SP1,32G内存,16个CPU,sql server分配内存大约29G。 发布一张小表, 分发 代理 停止在正在将大容量复制到表xxx,该表仅有几十行数据,总量最多几百K 查询订阅服务器 分发 进程,显示bulk insert 呈suspend状态,等[详细]
-
逼迫SQL Server执行打算行使并行晋升在伟大查询语句下的机能
所属栏目:[MsSql教程] 日期:2016-10-27 热度:137
最近在给一个客户做调优的时候发现一个很有意思的现象,对于一个 复杂 查询 (涉及12个表)建立必要的索引后,语句 使用 的IO急剧下降,但 执行 时间不降反升,由原来的8秒升到20秒。 通过观察 执行 计划 ,发现之前的执行 计划 在很多大表连接的部分 使用[详细]
-
怎样查察某个查询用了几多TempDB空间
所属栏目:[MsSql教程] 日期:2016-10-27 热度:50
最近帮助客户调优的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致。 在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序、hash join、work table等) 外部使用(临时表,表变量等) 行版本[详细]
-
怎样找到SQL Server的数据库汗青增添信息
所属栏目:[MsSql教程] 日期:2016-10-27 热度:122
很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式。 通常来讲,一个运维良好的数据库都需要做定期基线(baseline),有了基线才会[详细]
-
Sql Server中怎样通过父记录查找出全部关联的子记录
所属栏目:[MsSql教程] 日期:2016-10-27 热度:160
可查4级Sql代码 select menu_id,menu_name,Father_Id from Sys_Menu where menu_id='18' or Father_Id=18 or -- 一级、二级 Father_Id in (select menu_id from Sys_Menu a where menu_id='18' or Father_Id=18) or -- 三级 father_id in (select menu_id[详细]
-
Sql Server中怎样执行多条语句并返回Select查询后的姑且表
所属栏目:[MsSql教程] 日期:2016-10-27 热度:189
SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO -- ============================================= CREATE FUNCTION csj_csj(@id as int) RETURNS @temp table --这里返回一个自己创建的表,里面的字段根据自己的需要设 ( [id] int, [zd] varchar(100),[详细]
-
Sql Server 2008 R2占用内存一向增添到死锁的题目
所属栏目:[MsSql教程] 日期:2016-10-27 热度:175
最近有一客户服务器, 内存 小点, 内存 占用 很高,经查是sql server 问题 ,只能重启Sql服务器来清理内存,后来,试一方法,解决: 进入Sql server 企业管理器(管理数据库和表的,这个都不知道就不用往下看了),在数据库服务器名称上点击【右键】,选[详细]
-
Sql Server中如何让程序暂停几秒中再执行后面的命令
所属栏目:[MsSql教程] 日期:2016-10-13 热度:67
-- 语法 WAITFOR { DELAY 'time_to_pass' | TIME 'time_to_execute' | [ ( receive_statement ) | ( get_conversation_group_statement ) ] [ , TIMEOUT timeout ] } 注意:Delay最多不超过24小时 waitfor delay'00:00:10' -- 暂停10秒 select GETDATE() WA[详细]
-
使用T-SQL的好习惯
所属栏目:[MsSql教程] 日期:2016-10-13 热度:96
副标题#e# 1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主[详细]
-
T-SQL查询进阶:视图详解
所属栏目:[MsSql教程] 日期:2016-10-13 热度:177
副标题#e# 简介 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table[详细]
-
T-SQL查询进阶:流程控制语句
所属栏目:[MsSql教程] 日期:2016-10-13 热度:70
副标题#e# 概述 和其他高级语言一样,T-SQL中也有用于控制流程的语句。T-SQL中的流程控制语句进一步扩展了T-SQL的力量使得大部分业务逻辑可以在数据库层面进行。但很多人对T-SQL中的流程控制语句并没有系统的了解,本篇文章会系统的对T-SQL语句中的流程控制[详细]
-
T-SQL查询进阶:深入理解子查询
所属栏目:[MsSql教程] 日期:2016-10-13 热度:60
副标题#e# 引言 SQL有着非常强大且灵活的查询方式,而多表连接操作往往也可以用子查询进行替代,本篇文章将会讲述子查询的方方面面。 简介 子查询本质上是嵌套进其他SELECT,UPDATE,INSERT,DELETE语句的一个被限制的SELECT语句,在子查询中,只有下面几个子句[详细]
-
SQL Server误区:有关堆碎片的误区
所属栏目:[MsSql教程] 日期:2016-10-13 热度:151
误区 #29:可以通过对堆建聚集索引再DROP后进行堆上的碎片整理 Nooooooooooooo!!! 对堆建聚集索引再DROP在我看来是除了收缩数据库之外最2的事了。 如果你通过sys.dm_db_index_physical_stats(或是老版本的DBCC SHOWCONTIG)看到堆上有碎片,绝对不要通过建立[详细]
-
SQL Server误区:有关大容量事务日志恢复模式的误区
所属栏目:[MsSql教程] 日期:2016-10-13 热度:118
误区 #28:有关大容量事务日志恢复模式的几个误区 28 a)常见的DML操作可以被最小记录日志 不是。在大容量事务日志恢复模式下只有一小部分批量操作可以被最小记录日志,这类操作的列表可以在Operations That Can Be Minimally Logged找到。这是适合SQL Server[详细]
-
SQL Server误区:使用BACKUP ... WITH CHECKSUM可以替代DBCC CheckDB
所属栏目:[MsSql教程] 日期:2016-10-13 热度:125
误区 #27:使用BACKUP ... WITH CHECKSUM可以替代DBCC CheckDB 错误 乍一看,由于BACKUP WITH CHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQL Server 2000或是更早版本升上来的数据库page[详细]
-
SQL Server误区:有关填充因子的误区
所属栏目:[MsSql教程] 日期:2016-10-13 热度:60
误区 #25:多个有关填充因子的误区 都是错误的 25a) 填充因子是一直存在的 不是的,通过Books Online可以看到(译者:我在新版的BOL没有找到这句话): 重要: 填充因子仅仅在索引创建或重建时生效,SQL Server存储引擎并不会一直保证页内的空闲值和填充因子保[详细]
-
SQL Server误区:26个有关还原(Restore)的误区
所属栏目:[MsSql教程] 日期:2016-10-13 热度:165
本系列文章一直所没有触及的就是有关还原(Restore)的话题,因为一旦牵扯到这个话题就会涉及大量的误区,多到我无法通过一篇文章说完的地步。 事实上,我希望用字母表的顺序为每一个误区进行编号,希望你看了不要昏昏欲睡。下面开始揭穿这26个误区。 Myth #[详细]
-
SQL Server误区:有关锁升级的误区
所属栏目:[MsSql教程] 日期:2016-10-12 热度:180
误区 #23: 锁升级的过程是由行锁升级到页锁,再由页锁升级到表锁 错误 实际不是,在SQL Server 2005和之前的版本,锁升级会直接升到表锁。 在SQL Server 2005或SQL Server 2008,你可以通过如下跟踪标志改变锁升级的行为: 标志1211-完全禁止锁升级,但锁使[详细]
-
数据库损坏可以通过重启MSSQL或是Windows或是附加和分离数据库解决
所属栏目:[MsSql教程] 日期:2016-10-12 热度:110
误区 #21:数据库损坏可以通过重启SQL Server或是Windows,或是附加和分离数据库解决 错误 SQL Server中没有任何一项操作可以修复数据损坏。损坏的页当然需要通过某种机制进行修复或是恢复-但绝不是通过重启动SQL Server,Windows亦或是分离附加数据库。 而实[详细]
-
SQL Server误区:在破坏日志备份链后需要完整备份来重新开始日志链
所属栏目:[MsSql教程] 日期:2016-10-12 热度:74
误区 #20:在破坏日志备份链之后,需要一个完整备份来重新开始日志链 错误 事务日志备份会备份自上次事务日志备份以来所有的事务日志(如果从来没有过日志备份的话,那就从上一次完整备份开始)。有好几种类型的操作会中断事务日志的连续性,也就是说除非重新[详细]
-
SQL Server误区:有关FileStream的存储及垃圾回收
所属栏目:[MsSql教程] 日期:2016-10-12 热度:148
误区 #18:如下多个有关FileStream的误区 全部错误 18 a)FileStream数据可以在远程存储 不能,由于FileStream数据容器(指的是存放FileStream文件的NTFS文件夹,杜撰出来的术语)必须像数据文件或日志文件那样符合本地存储策略-也就是说,这个数据容器必须放[详细]
-
SQL Server误区:CheckPoint只会将已提交的事务写入磁盘
所属栏目:[MsSql教程] 日期:2016-10-12 热度:166
误区 #15:CheckPoint只会将已提交的事务写入磁盘 错误 这个误区是由于太多人对日志和恢复系统缺少全面的了解而存在已久。CheckPoint会将自上次CheckPoint以来所有在内存中改变的页写回磁盘(译者注:也就是脏页),或是在上一个CheckPoint读入内存的脏页写入[详细]
-
SQL Server误区:在SQL Server 2000兼容模式下不能使用DMV
所属栏目:[MsSql教程] 日期:2016-10-12 热度:120
误区 #13.在SQL Server 2000兼容模式下不能使用DMV 错误 对于兼容模式已经存在了很多误解。80的兼容模式的数据库是否意味着能够附加或恢复到SQL Server 2000数据库?当然不是。这只是意味着一些T-SQL的语法,查询计划的行为以及一些其它方面和SQL Server 20[详细]