-
怎样设置SQL Server行使Windows体系的Large-Page allocations
所属栏目:[MsSql教程] 日期:2016-10-30 热度:130
副标题#e# 今天,一个可改变控制的实现激使我去写这篇文章,这个可改变的控制就是允许运行在Windows200864位服务器上的SQLSERVER2005企业版上 使用跟踪标志834,SQLSERVER会利用 Large-Page allocations去构建内存中的Buffer Pool。 下面是我对 Large-Page[详细]
-
SQL SERVER分发署理在BULK INSERT时产生无穷守候怎样办理
所属栏目:[MsSql教程] 日期:2016-10-30 热度:207
场景: 服务器64位,SQL SERVER 2008R2SP1,32G内存,16个CPU,sql server分配内存大约29G。 发布一张小表, 分发 代理 停止在正在将大容量复制到表xxx,该表仅有几十行数据,总量最多几百K 查询订阅服务器 分发 进程,显示bulk insert 呈suspend状态,等[详细]
-
逼迫SQL Server执行打算行使并行晋升在伟大查询语句下的机能
所属栏目:[MsSql教程] 日期:2016-10-30 热度:113
最近在给一个客户做调优的时候发现一个很有意思的现象,对于一个 复杂 查询 (涉及12个表)建立必要的索引后,语句 使用 的IO急剧下降,但 执行 时间不降反升,由原来的8秒升到20秒。 通过观察 执行 计划 ,发现之前的执行 计划 在很多大表连接的部分 使用[详细]
-
怎样查察某个查询用了几多TempDB空间
所属栏目:[MsSql教程] 日期:2016-10-30 热度:156
最近帮助客户调优的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致。 在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序、hash join、work table等) 外部使用(临时表,表变量等) 行版本[详细]
-
怎样找到SQL Server的数据库汗青增添信息
所属栏目:[MsSql教程] 日期:2016-10-30 热度:52
很多时候,在我们规划SQL Server数据库的空间,或向存储方面要空间时,都需要估算所需申请数据库空间的大小,估计未来最简单的办法就是看过去的趋势,这通常也是最合理的方式。 通常来讲,一个运维良好的数据库都需要做定期基线(baseline),有了基线才会[详细]
-
Sql Server中怎样通过父记录查找出全部关联的子记录
所属栏目:[MsSql教程] 日期:2016-10-30 热度:112
可查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-30 热度:150
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-30 热度:140
最近有一客户服务器, 内存 小点, 内存 占用 很高,经查是sql server 问题 ,只能重启Sql服务器来清理内存,后来,试一方法,解决: 进入Sql server 企业管理器(管理数据库和表的,这个都不知道就不用往下看了),在数据库服务器名称上点击【右键】,选[详细]
-
Sql_Server中怎样判定表中某列是否存在
所属栏目:[MsSql教程] 日期:2016-10-30 热度:106
/*判断表AA中是否存在AA_ID这一列,如果不存在,则新增*/ IF NOT EXISTS (SELECT 1 FROM syscolumns INNER JOIN sysobjects ON sysobjects.id = syscolumns.id WHERE syscolumns.name = 'AA_ID' AND sysobjects.name = 'AA') ALTER TABLE AA ADD AA_ID VAR[详细]
-
行使Internals Viewer插件查察SQL SERVER内部数据页面
所属栏目:[MsSql教程] 日期:2016-10-30 热度:139
副标题#e# 感觉internals viewer这个名字起得很好,内部查看。 这个小工具是我之前看园子里的某大侠转载的文章是看到的 文章地址: SQL Server2008存储结构之堆表、行溢出 http://www.cnblogs.com/trams/archive/2010/09/11/1823727.html 这几天研究了一下[详细]
-
SQL SERVER中Case语句的用法
所属栏目:[MsSql教程] 日期:2016-10-09 热度:127
Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的[详细]
-
如何解决SQL SERVER的一致性错误
所属栏目:[MsSql教程] 日期:2016-10-09 热度:75
如果DBCC CHECKDB发现了比较少的一致性错误,可以使用 DBCC UPDATEUSAGE(DatabaseName,dbo.ObjectName); 语句逐个针对表或索引中的每个分区更正行、已用页、保留页、叶级页和数据页的计数。但是如果数据库出现大量一致性错误。例如如下所示: DBCC results[详细]
-
如何使用Sqlserver 2012 Always on技术
所属栏目:[MsSql教程] 日期:2016-10-09 热度:125
副标题#e# 使用了Sqlserver 2012 Always on技术后,假如采用的配置是默认配置,会出现Primary server CPU很高的情况发生,比如默认配置如下: 需要自定义来解决这个问题。 我们先来看看上图中的这些选项的意义 主角色中的连接 允许所有连接 如果当前server[详细]
-
SQL SERVER PRINT语句如何换行
所属栏目:[MsSql教程] 日期:2016-10-09 热度:143
想在输出的PRINT语句里面换行,可以这样做 /*SQL的换行制表符 CHAR(9)换行符 CHAR(10)回车 CHAR(13)*/PRINT 'Test'+CHAR(13)+'Name'PRINT 'Test'+CHAR(10)+'Age'PRINT 'Test'+CHAR(9)+'Tel' --以文本格式显示结果SELECT 'AAA'+ CHAR(10)+'BBB'--AAA BBBSEL[详细]
-
SQL SERVER中如何手动增长日志文件和数据文件
所属栏目:[MsSql教程] 日期:2016-10-09 热度:108
手动增长日志文件,实际上就是修改日志文件的大小 size 的单位是MB 下面设置日志文件大小是2048MB ALTERDATABASE[GPOSDB] MODIFY FILE(name=GPOSDB_Log,size=2048) EXEC sys.[sp_helpdb] @dbname = [GPOSDB] -- sysname --收缩日志文件 USE [GPOSDB] GO AL[详细]
-
SQL SERVER truncate table后会不会重置表的自增值
所属栏目:[MsSql教程] 日期:2016-10-09 热度:95
今天清理业务库数据的时候,开发人员说可以使用truncate table把两个表的所有数据清理掉 这两个表都有自增ID,都做了表分区,单表200GB,使用 SELECT IDENT_CURRENT('') 的时候两个表 的当前自增值是3000012,这两个表几乎是一模一样的,除了一两个字段不[详细]
-
SQL SERVER参数化查询后不走筛选索引
所属栏目:[MsSql教程] 日期:2016-10-09 热度:103
DROP TABLE T_TESTCREATE TABLE T_TEST( ID INT IDENTITY PRIMARY KEY,STATUS BIT)INSERT INTO T_TEST SELECT 0GO 100000INSERT INTO T_TEST SELECT 1 CREATE INDEX IXF_T_TEST_STATUS ON T_TEST(STATUS) WHERE STATUS=1UPDATE STATISTICS T_TEST with ful[详细]
-
SQL SERVER分发代理在BULK INSERT时发生无限等待如何解决
所属栏目:[MsSql教程] 日期:2016-10-09 热度:162
场景: 服务器64位,SQL SERVER 2008R2SP1,32G内存,16个CPU,sql server分配内存大约29G。 发布一张小表,分发代理停止在正在将大容量复制到表xxx,该表仅有几十行数据,总量最多几百K 查询订阅服务器分发进程,显示bulk insert 呈suspend状态,等待类型[详细]
-
SQL Server管理员专用连接的使用
所属栏目:[MsSql教程] 日期:2016-10-09 热度:109
作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用重启大法,以便尽快的恢复生产环境的正常运转,但是多数情况下我们却无法究其原因,即使产生了dump文件,没有微软的支持,我们同样被蒙在鼓里,幸好微软给我们[详细]
-
sql-server 2005数据库文件恢复:检测到基于一致性的逻辑 I/O错误
所属栏目:[MsSql教程] 日期:2016-10-09 热度:56
今天sql-server数据库突然报错: SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0x7c781313,但实际为: 0x67a313c9)。在文件 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAE_BLOCK_DB.mdf' 中、偏移量为 0x00000000a3400[详细]
-
Sql Server中如何让程序暂停几秒中再执行后面的命令
所属栏目:[MsSql教程] 日期:2016-10-03 热度:56
-- 语法 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-03 热度:79
副标题#e# 1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主[详细]
-
T-SQL查询进阶:视图详解
所属栏目:[MsSql教程] 日期:2016-10-03 热度:75
副标题#e# 简介 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table[详细]
-
T-SQL查询进阶:流程控制语句
所属栏目:[MsSql教程] 日期:2016-10-03 热度:105
副标题#e# 概述 和其他高级语言一样,T-SQL中也有用于控制流程的语句。T-SQL中的流程控制语句进一步扩展了T-SQL的力量使得大部分业务逻辑可以在数据库层面进行。但很多人对T-SQL中的流程控制语句并没有系统的了解,本篇文章会系统的对T-SQL语句中的流程控制[详细]
-
T-SQL查询进阶:深入理解子查询
所属栏目:[MsSql教程] 日期:2016-10-03 热度:165
副标题#e# 引言 SQL有着非常强大且灵活的查询方式,而多表连接操作往往也可以用子查询进行替代,本篇文章将会讲述子查询的方方面面。 简介 子查询本质上是嵌套进其他SELECT,UPDATE,INSERT,DELETE语句的一个被限制的SELECT语句,在子查询中,只有下面几个子句[详细]