zoukankan      html  css  js  c++  java
  • [转载] erp开发-数据查询优化方法

    系统运行环境:
    MSSQL 2008
    随着公司业务快速发展,各种业务数据如火箭般的高速增长,出现一个又一个千万行数据的表,往往大表之间的关联,耗费系统大量的磁盘io,并且会影响正常的实时业务的操作,所以我们必须改善此类查询的方式,保障系统正常运行
    大表与大表之间的关联查询如何优化?
    1 新增索引视图,将需要展示的关联数据建立一个视图,使查询物理的存在系统上,
    CREATE VIEW tableView
    WITH SCHEMABINDING
    AS select a.a1,a.a2,b.b1,b.b2 from a left join b on a.id =b.id
    CREATE UNIQUE CLUSTERED INDEX ix_ tableView_id
       ON tableView (id);
    2 在数据表设计的时候,采用冗余设计,将关联的表字段放入一个表中,避免大表关联查询。
    3 在数据库报表查询中:
    3.1在业务设计中,尽量做到分时间段查询,避免一次返回N多年的数据[因为返回N多年,最好找DBA导出]
    3.2 在存储过程中的写法上,首先新建几个临时表 放入从大表按查询条件截取的数据放入临时表
    3.3 用这些临时小表做关联查询,得出所需数据,就可以避免大表关联查询。
    4 采用程序的方式,自己做系统缓存设计?此方法慎用[因为这个只能做近似统计---BI]。

    后记:
    在程序慢的情况下,首先必须检查程序的优化空间,尽量从软件的角度去解决问题,避免出现问题就更换硬件,或寻求帮助,切记,切忌!

    转自  http://www.maomao365.com/?p=469

  • 相关阅读:
    CentOS命令找不到
    Docker原理之rootfs
    Docker原理之Namespace
    Docker原理之Cgroups
    Docker目录
    Docker基本使用
    Linux命令之防火墙
    Linux命令目录
    Rancher之主机添加
    oracle-decode函数用法
  • 原文地址:https://www.cnblogs.com/lairui1232000/p/4229892.html
Copyright © 2011-2022 走看看