zoukankan      html  css  js  c++  java
  • 数据库优化

    (#)----------------------------------

    错误写法(这种写法效率非常差):

      IF(NOT EXISTS(
    SELECT * FROM MallProj WITH(NOLOCK)......
     
    真确做法:
    IF(NOT EXISTS(
    SELECT top 1 id FROM MallProj WITH(NOLOCK)......
     
    注意:如果需要查所有字段也不要用select *,正确的做法是把每个字段都写上(因为select* 一旦数据库字段有增加和删除,很容易出错)
     
    (#)----------------------------------
       先把分页逻辑往前提(对于大数据的运行,分页逻辑往前提非常重要,很多人写sql的时候都没有注意这点,尽量的在最前面分页后再进行其他关联,否则运算的是所有数据而不是当   前页的数据)
     
    (#)----------------------------------
    把客户池丢弃原因冗余到UserAndProj表,因为这个sql需要对表SellerGiveUpTable进行全表扫描,找出每条记录的最新丢弃原因,这样做非常耗性能(大家写程序的时候尽量用冗余来换取速度)
     
    (#)----------------------------------
    *select xx,xxx from tablexxx where xxx=?
    order by xxx desc
    offset (@currentPage-1)*@pageSize row fetch next @pageSize rows only 
    *select
    ROW_NUMBER() OVER (ORDER BY a.updateTime DESC) AS num,
    xx,xxx from tablexxx where xxx=?
    WHERE  num>=(@pageIndex - 1) * @pageSize + 1 AND  num<=@pageIndex*@pageSize
    效率高很多
    (#)----------------------------------
    set STATISTICS io ON
    set STATISTICS TIME On
    SELECT top 10 * FROM MallProj WITH(NOLOCK)
    set STATISTICS io Off
    set STATISTICS TIME Off
    (#)----------------------------------
    sql查看性能的工具
    sqlserver工具
    点击"包括实际的执行计划"按钮,然后再查询,然后右键下方执行计划中"缺少索引详细信息"
     
     
     
     
     
  • 相关阅读:
    Docker Dockerfile 定制镜像
    Nginx之URL重写(rewrite)配置
    Jenkins可用环境变量列表以及环境变量的使用(Shell/Command/Maven/Ant)
    vue实现element-ui对话框可拖拽功能
    配置了ssh免密登录还是提示权限不足怎么解决
    一篇文章彻底搞懂base64编码原理
    想不到吧
    async_retrying
    aiojobs
    python字典不区分大小写
  • 原文地址:https://www.cnblogs.com/ws-zpp/p/4939610.html
Copyright © 2011-2022 走看看