关闭

SQL Server 性能调优4 之书写高效的查询

限制查询的行和列来提高性能这条规则非常简单,这里就不细说了。使用搜索可参数化判断(sargable conditions)来提高性能Sargable 由 Search ARGument Able 简写而来,字面意思是搜索可参数化?还是比较晦涩哎…总之使用Sargable判断可以帮助查询优化器更有效地利用索引,并提高采用 index seek 的可能性,我们先把所有的操作符分一下组。Sargable操...
阅读(76) 评论(0)

SQL Server 性能调优3 之索引(Index)的维护

前言前一篇的文章介绍了通过建立索引来提高数据库的查询性能,这其实只是个开始。后续如果缺少适当的维护,你先前建立的索引甚至会成为拖累,成为数据库性能的下降的帮凶。查找碎片消除碎片可能是索引维护最常规的任务,微软官方给出的建议是当碎片等级为 5% - 30% 之间时采用 REORGANIZE 来“重整”索引,如果达到 30% 以上则使用 REBUILD 来“重建”索引。决定采用何种手段和操作时机可能需要...
阅读(74) 评论(0)

SQL Server 性能调优2 之索引(Index)的建立

前言索引是关系数据库中最重要的对象之一,他能显著减少磁盘I/O及逻辑读取的消耗,并以此来提升 SELECT 语句的查找性能。但它是一把双刃剑,使用不当反而会影响性能:他需要额外的空间来存放这些索引信息,并且当数据更新时需要一些额外开销来保持索引的同步。形象的来说索引就像字典里的目录,你要查找某一个字的时候可以根据它的比划/拼音先在目录中找到对应的页码范围,然后在该范围中找到这个字。如果没有这个目录(...
阅读(67) 评论(0)

SQL Server 性能调优 之执行计划(Execution Plan)调优

执行计划中的三种 Join 策略SQL Server 存在三种 Join 策略:Hash Join,Merge Join,Nested Loop Join。Hash Join:用来处理没有排过序/没有索引的数据,它在内存中把 Join 两边数据(的关联key)分别建立一个哈希表。例如有以下的查询语句,关联的两张表没有建立索引,执行计划将显示为Hash Join。 SELECT...
阅读(61) 评论(0)

教你如何看懂SQL Server查询计划

对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题,本文只谈优化查询时如何看懂SqlServer查询计划。由于我对SqlServer的认识有限,如有错误,也恳请您在发现后及时批评指正。首先,打开【SQL Server Management Studio】,输入一个查询语句看看SqlServer是如何显示查询计划的吧。 说明:本文所演示的...
阅读(229) 评论(0)

表提示(Transact-SQL)

通过指定锁定方法、一个或多个索引、查询处理操作(如表扫描或索引查找)或其他选项,表提示可在数据操作语言 (DML) 语句执行期间覆盖查询优化器的默认行为。表提示在 DML 语句的 FROM 子句中指定,仅影响在该子句中引用的表或视图。 由于 SQL Server 查询优化器通常会为查询选择最佳执行计划,因此我们建议仅在最后迫不得已的情况下才可由资深的开发人员和数据库管理员使用提示。 适用范围:...
阅读(215) 评论(0)

SQLServer索引的四个高级特性

一、Index Building Filter(索引创建时过滤)有一些索引非常低效的,比如经常查询状态为进行中的订单,订单有99%的状态是完成,1%是进行中 ,因此我们在订单状态字段上建了一个索引,性能是提高了,但是感觉索引中保存了99%的完成状态数据是永远不会查询到的,很浪费空间。如果我们的索引在建立的时间就不保存完成状态的数据,那不是更好。 Index Building Filter就是用来解决...
阅读(289) 评论(0)

SQL Server的复合索引学习

概要什么是单一索引,什么又是复合索引呢? 何时新建复合索引,复合索引又需要注意些什么呢?本篇文章主要是对网上一些讨论的总结。一.概念单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上。用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)。复合索引的创建方法与创建单一索引的方法完全一样。但复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引。当表的行数远远大于索引键的数目时...
阅读(67) 评论(0)

SqlSever查询开销

尽管查询的执行计划提供了详细的处理策略的单独步骤涉及的估计相对开销,但是它没有提供查询实际的CPU使用、磁盘读写或持续时间等开销。还有其他比运行Profiler更直接手机性能数据的方法一、客户统计  客户统计将计算机作为服务器的一个客户端,从这个角度出发去捕捉执行信息。这意味着任何记录事件包括通过网络传送数据的时间,而不仅仅是SQL Server本身所花费的时间。  要使用客户统计,只需要单击=》查...
阅读(227) 评论(0)

SqlServer学习(四)【复杂语句】

删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最大的记录delete from [dbo].[WList] where [Cphone] in (select [Cphone] from [WList] group by [Cphone] having count([Cphone]) > 1)AND ID NOT in( SELECT Max(ID) FR...
阅读(129) 评论(0)

如何识别SQL Server中的IO瓶颈

问题:我们可能经常会遇到SQLServer数据库频繁关闭的情况。在分析了内存和CPU使用情况后,我们需要继续调查根源是否在I/O。我们应该如何识别SQLServer是否有I/O相关的瓶颈?解决:当数据页经常从缓冲池中移进移出的时候,I/O子系统就会成为SQLServer性能问题的关键因素之一。事务日志和tempdb同样也会产生重大的I/O压力。因此,你必须确保你的I/O子系统能按照预期运行。否则你将...
阅读(262) 评论(0)

一个将Access数据库转成Mssql数据库的简单工具

frmMain.cspublic partial class frmMain : Form { private Thread TransferWorkerThread = null; public frmMain() { InitializeComponent(); } private voi...
阅读(235) 评论(0)

SQLServer创建索引

什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。 SQL Ser...
阅读(187) 评论(0)

SQLServer创建索引的5种方法

前期准备:create table Employee ( ID int not null primary key, Name nvarchar(4), Credit_Card_ID varbinary(max)); --- 小心这种数据类型。 go说明:本表上的索引,都会在创建下一个索引前删除。创建聚集索引方法 1、ALTER...
阅读(461) 评论(0)

数据库sql实用脚本

Mysql数据表自连接查询FROM子句中无法指定目标表更新UPDATE user_accounts a INNER JOIN user_accounts b ON a.id = b.id SET a.status = 0 WHERE b.update_at <= DATE_ADD(NOW(), INTERVAL -2 DAY)触发器before执行Can’t update table in...
阅读(193) 评论(0)

SqlServer性能优化用SQL(四)【执行次数和性能监控】

SQL脚本--查询CPU最高的10条SQL SELECT TOP 10 TEXT AS 'SQL Statement' ,last_execution_time AS 'Last Execution Time' ,(total_logical_reads + total_physical_reads + total_logical_writes) / execution_count...
阅读(255) 评论(0)

SqlServer性能优化用SQL(三)【数据库环境监控】

SQL脚本:--查询当前数据库的配置信息 Select configuration_id ConfigurationId, name Name, description Description, Cast(value as int) value, Cast(minimum as int) Minimum, Cast(maximum as int) Maximum, Cast(value_in_use...
阅读(267) 评论(0)

SqlServer性能优化用SQL(二)【索引监控】

SQL脚本: -- 未被使用的索引 SELECT OBJECT_NAME(i.[object_id]) AS [Table Name] , i.name FROM sys.indexes AS i INNER JOIN sys.objects AS o ON i.[object_id] = o.[object_id] WHERE i.index_id NO...
阅读(250) 评论(0)

SqlServer性能优化用SQL(一)【锁监控】

Sql脚本:--查看锁住的表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'--哪个会话引起阻塞并且它们在运行什么 SELECT DTL.[request_s...
阅读(210) 评论(0)

MSSQL实用脚本

备份所有指定的MSSQL数据库DECLARE @name VARCHAR(50) -- 数据库名 DECLARE @path VARCHAR(256) -- 备份文件路径 DECLARE @fileName VARCHAR(256) -- 备份文件名 DECLARE @fileDate VARCHAR(20) -- 用来做文件名的 SET @path = 'D:\backup\' SELECT...
阅读(132) 评论(0)
41条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:893864次
    • 积分:13005
    • 等级:
    • 排名:第1092名
    • 原创:307篇
    • 转载:439篇
    • 译文:56篇
    • 评论:93条
    博客专栏
    文章分类
    打赏
    如果你觉得我的文章对您有用,请随意打赏。 微信 支付宝