篇一 :SQLServer查询执行计划分析

看懂执行计划

例子1

以AdventureWorks的DatabaseLog查询为例:

SELECT * FROM [AdventureWorks2008R2].[dbo].[DatabaseLog]

? Cached plan size – how much memory the plan generated by this query will take up in stored procedure cache. This is a useful number when investigating cache performance issues because you'll be able to see which plans are taking up more memory.

? Estimated Operator Cost – we've already seen this as the percentage cost in Figure 1.

? Estimated Subtree Cost – tells us the accumulated optimizer cost assigned to this step and all previous steps, but remember to read from right to left. This number is meaningless in the real world, but is a mathematical evaluation used by the query optimizer to determine the cost of the operator in question; it represents the amount of time that the optimizer thinks this operator will take.

…… …… 余下全文

篇二 :sql server 20xx数据库维护计划

SQL Server 2005数据库维护计划

计算机系统各种软、硬件 故障、用户误操作以及恶意破坏是不可避免的,这些影响到数据的正确性甚至造成数据损失、服务器崩溃等致命后果。数据库的备份对保证系统的可靠性具有重要的作用。

下面会根据执行强度对维护任务及其相应的程序进行分类描述,执行强度用不同的时间间隔定义,包括每天、每周、每月和每季度,能够建立起良好的维护实务,确保SQL Server数据库性能和安全。

一、每天的例行维护任务

需要数据库管理员密切关注的维护任务,最好每天都检查一下,这样可以确保系统的可靠性、可用性、运行性能和安全。每天的例行维护任务包括:1、检查是不是所有被请求的SQL Server服务都正常运行。2、检查日常备份日志中成功、警告或者失败记录。3、检查Windows事件日志有没有错误记录。4、检查SQL Server日志有没有安全警告记录,例如非法登录。5、执行完全备份或差异备份。6、在设置了完全恢复模型或大容量日恢复模型的数据库上执行事务日志备份任务。7、核实SQL Server作业没有失败。8、检查所有的数据库文件和事务日志具有合适的磁盘空间大小。9、至少要监控处理器、内存或者磁盘计数器没有出现瓶颈。

…… …… 余下全文

篇三 :sqlserver备份计划

sqlserver备份计划

SQL SERVER 2005如何建立自动备份的维护计划

SQL Server 2005中可以使用维护计划来为数据库自动备份,减少数据库管理员的工作负担。其使用方法如下:

(1)启动【sql server Management Studio】,在【对象资源管理器】窗口里选择【管理】——【维护计划】选项。

2)右击【维护计划】,在弹出的快捷菜单里选择【维护计划向导】选项

sqlserver备份计划

,弹出如图所示的【维护计划向导】对话框,单击【下一步】按钮

sqlserver备份计划

3)弹出如图所示【选择目标服务器】对话框,在【名称】文本框里可以输入维护计划的名称;在【说明】文本框里可以输入维护计划的说明文字;【在服务器】文本框里可以输入要使用的服务器名;最后选择正确的身份证信息,单击【下一步】按钮。

sqlserver备份计划

(4)弹出如图所示【选择维护任务】对话框,在该对话框

里可以选择多种维护任务:检查数据库完整性、收缩数据库、重新生成或组织索引、更新统计信息、清除历史记录、执行sql

Server代理作业、备份数据库等。在本例中选择【备份数据库(完整)】复选框,其他维护任务的设置都大同小异。

sqlserver备份计划

(5)单击【下一步】按钮,弹出如图所示【选择维护任务顺序】对话框,如果有多个维护任务,在此可以通过【上移】和【下移】两个按钮来设置维护任务的顺序,设置完毕后单击【下一步】按钮。

…… …… 余下全文

篇四 :SQL语句执行计划分析

? Table Scan(表扫描):如果看到这个信息,就说明数据表上没有聚集索引,或者查询优化器

没有使用索引来查找。意即资料表的每一行都被检查到。如果资料表相对较小的话,表扫描可以非常快速,有时甚至快过使用索引。

因此,当看到有执行表扫描时,第一件要做的事就是看看数据表有多少数据行。如果不是太多的话,那么表扫描可能提供了最好的总体效能。但如果数据表大的话,表扫描就极可能需要长时间来完成,查询效能就大受影响。在这种情况下,就需要仔细研究,为数据表增加一个适当的索引用于这个查询。

假设你发现某查询使用了表扫描,有一个合适的非聚集索引,但它没有用到。这意味着什么呢?为什么这个索引没有用到呢?如果需要获得的数据量相对数据表大小来说非常大,或者数据选择性不高(意味着同一个字段中重复的值很多),表扫描经常会比索引扫描快。例如,如果一个数据表有10000个数据行,查询返回1000行,如果这个表没有聚集索引的话,那么表扫描将比使用一个非聚集索引更快。或者如果数据表有10000个数据行,且同一个字段(WHERE条件句有用到这个字段)上有1000笔重复的数据,表扫描也会比使用非聚集索引更快。

查看图形执行计划上的数据表上的弹出式窗口时,请注意”预估的资料行数(Estimated Row Count)”。这个数字是查询优化器作出的多少个数据行会被返回的最佳推测。如果执行了表扫描且”预估的数据行数”数值很高的话,就意味着返回的记录数很多,查询优化器认为执行表扫描比使用可用的非聚集索引更快。

…… …… 余下全文

篇五 :看懂sql执行计划

对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题, 首先,打开【SQL Server Management Studio】,输入一个查询语句看看SqlServer是如何显示查询计划的吧。 select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v.SumMoney, v.Finished from

看懂sql执行计划

OrdersView as v

where v.OrderDate >= '2010-12-1' and v.OrderDate < '2011-12-1'; 其中,OrdersView是一个视图,其定义如下:

SELECT dbo.Orders.OrderID, dbo.Orders.CustomerID,

dbo.Orders.OrderDate,

dbo.Orders.SumMoney, dbo.Orders.Finished,

ISNULL(dbo.Customers.CustomerName, N'') AS CustomerName FROM dbo.Orders LEFT OUTER JOIN

…… …… 余下全文

篇六 :一步一步教你创建SQL 20xx计划任务应用图解教程

使用sql的计划任务可以处理一些特殊环境的数据,除了使用windows系统的计划任务来定时处理,不过要配合程序才行,有些事情可以直接使用sql本身的计划任务,更方便,所以本文图解一下Sql2005计划任务的创建使用。

在SQL server2005创建计划任务具体步骤如下:

首先要确认 sql server agent服务启动,如此服务被停止,则不能创建。

然后,以数据库管理员身分登录数据库服务器,在维护计划上单击右键 如下图示:

一步一步教你创建SQL20xx计划任务应用图解教程

选择新建维护计划,输入计划名字

一步一步教你创建SQL20xx计划任务应用图解教程

然后,选择计划任务执行时间

一步一步教你创建SQL20xx计划任务应用图解教程

一步一步教你创建SQL20xx计划任务应用图解教程

点击确认后,就可以创建任务具体任务内容了,我们在可以在左侧下方的任务选项中,选择要执行的任务类型,拖放过来,在这里我选择的是执行T-SQL任务,如下图示

一步一步教你创建SQL20xx计划任务应用图解教程

完成后,在任务上点右键,选择编辑,在弹出窗口如下图示

一步一步教你创建SQL20xx计划任务应用图解教程

可以键入我们要执行的T-SQL语句,当然,在这之前,要设置一下到数据库服务器的连接,点击新建,弹出窗体进行相应设置就可以了,这个应该很简单了,如下图示:

一步一步教你创建SQL20xx计划任务应用图解教程

这样,计划任务就创建完成了,单击确认保存。

这种方式要求对服务器有管理员权限,这会对应用开发,有一定的限制。

…… …… 余下全文

篇七 :SQL]提升SQL执行效率诀窍

SQL]提升SQL执行效率诀窍1-逻辑执行顺序

(2011-12-21 10:50:10)

转载▼

标签: 分类: SQLServer

sqlserver

效率

/MR_ke/archive/2011/05/29/2062085.html

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?那么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。

要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序,下手的时候就胸有成竹,那么下手是不是有把握点呢? 一:查询的逻辑执行顺序 (1) FROM < left_table>

(2) ON < join_condition> (3) < join_type> JOIN < right_table>

…… …… 余下全文

篇八 :sql维护计划自动操作

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库。要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业。启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是TestDB1+当时备份的日期字符串.bak。

declare @name varchar(250
set @name='C:\Backup\TestDB1_'+ 
convert(varchar(50),getdate(),112)+'.bak' 
BACKUP DATABASE [TestDB1] TO  
DISK = @name 
WITH NOFORMAT, NOINIT,  
NAME = N'TestDB1-完整 数据库 备份', 
SKIP, NOREWIND, NOUNLOAD

…… …… 余下全文