首页 > 代码库 > 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 性能优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。