11 SQL调优概述
11.3调优程序/减轻负载
如果期望减轻数据库服务器整体的CPU或者I/O负载,可通过以下步骤确定资源密集型的SQL语句:
1.选择在应用程序的处理高峰期检测。
2.在以上周期内,收集操作系统及Oracle统计信息。需要收集的Oracle统计信息至少包括文件的I/O(通过视图V$FILESTAT),系统统计信息(V$SYSSTAT),以及SQL统计信息(V$SQLAREA
, V$SQL
or V$SQLSTATS
,
V$SQLTEXT
, V$SQL_PLAN
, and V$SQL_PLAN_STATISTICS
)。
3.通过第二步收集的统计信息来确定使用最多资源的SQL语句,可以通过对V$SQL中的数据排序来断定资源的使用情况。一般关注的资源是:
Buffer gets (V$SQL
.BUFFER_GETS
, 较耗CPU的语句)
Disk reads (V$SQL
.DISK_READS
, 较耗I/O的语句)
Sorts (V$SQL
.SORTS
, 大量排序)
较注重CPU的优化,可以首先从buffer gets值较高的语句入手,否则,对于I/O来说,从DISK_READS较高的SQL语句开始。
11.5.1验证优化器统计信息
查询优化器使用从表、索引收集的统计信息来决定最优的执行计划。如果统计信息未收集或者存储在数据库中数据库的统计信息已不具代表性,则优化没有足够的统计信息来生成最优的执行计划。
1.最好为所有表收集统计信息,特别是SQL语句中表连接涉及的表需要收集统计信息。
2.表中的实际行数(row count)与DBA_TABLES.NUM_ROWS的值做比较,是一个检验数据字典的统计信息是否过时的好方法。
相关文档:
----------------------------------------------------------------------
1、SQL数据库恢复模型
----------------------------------------------------------------------
1)完全恢复模型
-----------------
(1)备份时要备份数据库的数据文件和日志文件
(2)还原时使用数据库的备份的数据文件副本和全部日志信 ......
一、主要是需要更新mssqlServer 的时候需要进行一些是否存在的判断,在mssql2000 和 2005 上测试没有哦问题
--//判断是表Table_UserInfo里是否有字段
if not exists(select * from syscolumns where id=object_id('Table_UserInfo') and name='Tel') begin
ALTER table Table_UserInfo add Tel varchar(200)--增加字段
......
1. 新的产品版本
除SQL Server 2005标准版和企业版之外,产品线中还加入了SQL Server 2005简化版(SQL Server 2005 Express)和工作组版(SQL Server 2005 Workgroup)两个新版本。
SQL Server 2005 Express——其作用是代替微软SQL Server桌面引擎(Microsoft SQL Server Desktop Engine,MSDE)。SQL Serve ......
/*******************************************************/
/* 功能:SQL Server 2005索引碎片整理 */
/* 逻辑碎 ......
set @sql = 'select * from OPENROWSET(''SQLOLEDB'',''SERVER='+@serverip+';uid=sa;pwd=sa;Database='+@databaseName+''',''SET FMTONLY OFF;set nocount on exec procName '''''+@yqid+''''''' ) as   ......