首页 > 代码库 > SQL Server 性能优化

SQL Server 性能优化

今天有位网友找我给他原有的系统数据库优化下查询速度,个人总结了几点对sqlserver的优化

1、Sql查询语句的优化,如:能使用外连接查询出来的尽量别用内连接...,这些个就不废话,如果我使用这个给他优化的话,那我就还得先了解他系统的业务什么的,花的时间就比较多了,这样不值。所以打算通过以下2点来优化:

2、为表添加索引,这个根据系统实际情况来

3、在系统测试通过后,将外键约束删除(由于他是已经在运行的系统,如果没有使用外键来执行一些触发器什么的,这个肯定行得通的)

通过sql可以查询出指定的表的外键名称,eg.查询db中SalesOrder表中的外键

select name

from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id(‘[dbo].[SalesOrder]‘)

这样就可以看到SalesOrder表中的外键了(如果有)

但如果这样的话,那我不得每个表去查询,google了下找到一个解决方案,用一条sql语句搞定全部,如下:

--使用SYSREFERENCES--删除外键DECLARE @SQL VARCHAR(100)DECLARE CUR_FK CURSOR LOCAL FORSELECT ALTER TABLE [+ OBJECT_NAME(FKEYID) + ] drop constraint  + OBJECT_NAME(CONSTID)  FROM  SYSREFERENCES--删除所有外键OPEN CUR_FKFETCH CUR_FK INTO @SQLWHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_FK INTO @SQLENDCLOSE CUR_FKDEALLOCATE CUR_FK

直接执行这个,会将db中所有的外键约束删除

SQL Server 性能优化