易截截图软件、单文件、免安装、纯绿色、仅160KB

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]
缺少聚集索引的表,处理的时候要慎重,怎么样建立合适的聚集索引是需要仔细考虑的,有时候,聚集索引建立的不好,会导致索引碎片的频繁增加,最重导致更加失败的性能表现,所以要从应用、表结构、数据产生的顺序等多方面考虑,然后再确定聚集索引的键值,维护好完成聚集索引后,通过实际应用来查看性能


相关文档:

sql时间比较操作常用函数

--日期转换参数,值得收藏
select CONVERT(varchar, getdate(), 120)
2004-09-12 11:06:08
select convert(varchar(10),getdate() ,120) 
----------
2009-04-09
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , get ......

SQL Server 数据库管理常用的SQL和T SQL语句

SQL Server 数据库管理常用的SQL和T-SQL语句
1. 查看数据库的版本
select @@version
2. 查看数据库所在机器操作系统参数
exec master..xp_msver
3. 查看数据库启动的参数
sp_configure
4. 查看数据库启动时间
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看数 ......

关于SQL异地备份的方法

方案一:SQL自带的数据库备份计划
一:基本思路
1:要实现异地备份,必须使用域用户帐号来启动SQL Server服务以及SQL Server Agent服务,因为本地系统帐户无法访问网络。
2:在异地机器中建立一个与SQL Server服务器中启动SQL Server服务的域用户帐号同名帐号,且密码保持相同。在异地机器中建立一个共享文件夹,并设置合 ......

mysql+php无法连接sql(已解决)

搞了很久。。终于发现原来是权限问题。。
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
经典了。。。
魔力私服网页端搞定咯~~ ......

Truncate Logs for SQL Server 2008

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 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号