SQL Server数据库的整理优化的基本过程(一)
SQL Server 数据库的整理优化的基本过程(一)
高建刚
作为系统的重要一个部分,数据库的性能在系统的运行过程中起到了非常关键的作用,系统的运行过程中,我们经常遇到客户抱怨系统运行的太慢,统计一个月的报表经常会出现超时的情况,面对这些问题,我们应该如何处理哪?程序优化和数据库优化要同步进行,程序方面应该从编写的 T-SQL 语句、数据库的访问引擎、系统的架构设计等方面,当然了 WEB Form 的程序还要考虑到应用服务器以及 IIS 的问题等等,这是个系统架构师的问题,在此不多涉及。对我来说最关心的还是如何从数据库方面来优化数据库,下面就结合我个人的从业经验对数据库的优化做一个简单的介绍。
首先,当我们面对一个数据库时,我们应该从基础慢慢的去整理,使之成为一个基本正常运行的数据库,这其中包含了很多的信息,由于一个系统的开发、实施、调试过程中都有可能会对数据库的正常运行造成一定的影响,所以我们要从基础着手,看看是否是正常运行的数据库,即便这个数据库是非常陌生的,我们也可以慢慢的去整理,以便达到初期的整理优化的效果。
查看是否所有的表都有主键。一个表没有主键会造成各种各样的问题,我们可以通过以下语句:
select NAME
from sysobjects T1
where xtype = 'U'
AND objectproperty ( object_id ( T1. Name), 'IsUserTable' )= 1
AND objectproperty ( object_id ( T1. Name), 'TableHasPrimaryKey' )= 0
ORDER BY [NAME]
通过上述语句的执行,我们会发现,数据库中有哪些表没有主键约束,对这些表,要进行分析,增加主键。
下一步,我们来看看聚集索引,相信很多人对于聚集索引造成的性能问题印象已经很深了,几乎涉及到性能两个字的时候,我们就会想到索引这个词。通过下边的语句我们可以找到那些表没有聚集索引:
SELECT NAME
from sysobjects T1
WHERE xtype = 'U'
AND objectproperty ( object_id ( T1. Name), 'IsUserTable' )= 1
AND objectproperty ( object_id ( T1. Name), 'TableHasClustIndex' )= 1
ORDER BY [NAME]
缺少聚集索引的表,处理的时候要慎重,怎么样建立合适的聚集索引是需要仔细考虑的,有时候,聚集索引建立的不好,会导致索引碎片的频繁增加,最重导致更加失败的性能表现,所以要从应用、表结构、数据产生的顺序等多方面考虑,然后再确定聚集索引的键值,维护好完成聚集索引后,通过实际应用来查看性能
相关文档:
搞了很久。。终于发现原来是权限问题。。
2行命令搞定
grant all privileges on rogue.* to admin@localhost identified by 'admin' with grant option
grant all privileges on rogue.* to admin@'%' identified by 'admin' with grant option
经典了。。。
魔力私服网页端搞定咯~~ ......
Update Channel set Unit ='mg' ,
RunUpThreshold='10' ,
RunDownThreshold='10' ,
SafetyUpThreshold='10' ,
SafetyDownThreshold='10'
where Bridge='001' and DeviceCode='AS'
and SensorCode='001' and Supplement='N'
set : ','
where: and ......
Truncate Logs for SQL Server 2008
I had previously posted how to Truncate Logs for SQL Server 2005. Unfortunately, this method does not work in SQL Server 2008. The reason is because the “WITH TRUNCATE_ONLY” command is no longer in SQL 2008. Assuming you run in full recovery mode, the n ......
哎,还是上周的事情了,csdn的博客最近咋老是打不开呢!
基本语句:Alter table 表名 drop Column 字段名
另单单是这样是不行滴,还要删除对应的关系滴。下面就把查找到的那篇文章引用下吧!
原文地址:http://hi.baidu.com/lisky119/blog/item/3c348c082573949c0a7b82d1.html
SET ANSI_NULLS ON
GO
SET QUOTED_IDENT ......
1.使用Management Studio Express,用“Windows身份验证”登录,选中SQL服务器名,右击鼠标选择属性,在服务器属性选项页面,选择“安全性”,将服务器身份验证由“Windows身份验证”改为“SQL Server和Windows身份验证”,单击确定。
2.使用SQL Server 2005外围应用 ......