zoukankan      html  css  js  c++  java
  • 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 FOR
    SELECT 'ALTER TABLE ['+ OBJECT_NAME(FKEYID) + '] drop constraint ' + OBJECT_NAME(CONSTID)  FROM  SYSREFERENCES
    --删除所有外键
    OPEN CUR_FK
    FETCH CUR_FK INTO @SQL
    WHILE @@FETCH_STATUS =0
    BEGIN
    EXEC(@SQL)
    FETCH CUR_FK INTO @SQL
    END
    CLOSE CUR_FK
    DEALLOCATE CUR_FK

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

  • 相关阅读:
    dart中Map类型详解
    洛谷P1582 倒水(二进制)
    maven依赖 临时转阿里云镜像
    java jdbc 连接数据库
    java 常用类
    java 异常处理
    java 对象 this static 封装
    java 面对对象 内存分析
    团队开发 git
    java 代码块
  • 原文地址:https://www.cnblogs.com/xiexingen/p/3938664.html
Copyright © 2011-2022 走看看