首页 > 数据库 >sql server 正确的建立索引

sql server 正确的建立索引

时间:2023-04-20 18:35:20浏览次数:36  
标签:MgrObjId Dtime Value server 索引 sql where Id

首先,我们需要明白几个索引的要点:

  • 索引之后,按索引字段重复最少的来排序,会达到最优的效果。以我们的表来说,如果建立了No的聚集索引,把No放在where子句的第一位是最佳的,其次是Id,然后是MgrObjId,最后是时间,时间索引如果表是一个小时的,最好不要用
  • where子句的顺序决定了查询分析器是否使用索引来查询。比如建立了MgrObjId和Id的索引,那么where MgrObjId='' and Id='' and Dtime=''就会采用索引查找,而where Dtime='' and MgrObjId='' and Id=''则不一定会采用索引查找。
  • 把非索引列的结果列放在包含列中。因为我们条件是MgrObjId和Id以及Dtime,因此返回结果中只需包含Dtime和Value即可,因此把Dtime和Value放在包含列中,返回的索引结果就有这个值,不用再查物理表,可以达到最优的速度。

跟上述几点原则,我们建立以下的索引:CREATE NONCLUSTERED INDEX Idx_His20141008 ON dbo.his20141008(MgrObjId,Id) INCLUDE(Value,Dtime)

 

总结

如何在SQLServer中处理亿万级别的数据(历史数据),可以按以下方面进行:

  • 去掉表的所有索引
  • 用SqlBulkCopy进行插入
  • 分表或者分区,减少每个表的数据总量
  • 在某个表完全写完之后再建立索引
  • 正确的指定索引字段
  • 把需要用到的字段放到包含索引中(在返回的索引中就包含了一切)
  • 查询的时候只返回所需的字段

转自:https://www.cnblogs.com/linybo/p/10093735.html

标签:MgrObjId,Dtime,Value,server,索引,sql,where,Id
From: https://www.cnblogs.com/shiyi2014/p/17337852.html

相关文章

  • django中开启事务,GEO地理位置信息、持久化方案、主从复制原理和方案、哨兵高可用、集
    django中开启事务#django中如何开启事务全局开启:每个http请求都在一个事务中DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'lqz','HOST'......
  • MYSQL如何开启BINLOG
    看到网上不同的开启方法,有直接如下设置的:/etc/my.cnf...log_bin...也有设置:...log_bin=ONlog_bin_basename=/var/lib/mysql/mysql-binlog_bin_index=/var/lib/mysql/mysql-bin.index...三个参数来指定,第一个参数是打开binlog日志第二个参数是binlog日志的基本文件名,后面会追加标......
  • 聊聊MySQL锁
    操作数据库的操作分两类,操作表(DDL)和操作表数据(DML)DDL锁MySQL5.6以前,没有发布OnlineDDL功能,执行DDL主要是通过copy和inplace,这两种方式都会全程锁表,无法执行DMLOnlineDDL就是执行DDL时可以同时执行DMLDML锁DML操作会根据索引及数据变更等加相应锁粒度行级锁加锁......
  • linux下安装mysql
    1、查看是否已经安装Mysqlrpm-qa|grepmysql2、上传mysql的安装包到linux下,(.tar.gz版本的)3、解压安装包tar-zxvfmysql-5.7.35-linux-glibc2.12-x86_64.tar.gz4、先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:检查是否有mysql用户组:groupsmysql添加......
  • 基于SSM框架和MySQL的仿天猫商城
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]1.项目简介天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。作为模拟天猫商城系统的核心组成部分之一,采用SSM框架......
  • SQL——练习:往下展开BOM
    --练习:往下展开BOMIFEXISTS(SELECT*FROMtempdb.dbo.sysobjectsWHEREid=OBJECT_ID(N'tempdb.dbo.#temp_bom'))--是否存在该临时表DROPTABLE#temp_bom--存在则删除CREATETABLE#temp_bom--创建临时表(ROOT_ITEM_IDUNIQUEIDENTIFIER,......
  • 3.索引维护
    一、索引使用情况1.查找缺失索引useDB_nameSELECTA.USER_SEEKS查找次数,A.USER_SCANS扫描次数,ROUND(A.AVG_TOTAL_USER_COST,2)减少的用户查询的平均成本,A.AVG_USER_IMPACT可能获得的平均百分比收益,ROUND((A.USER_SEEKS+A.USER_SCANS)*A.AVG_TOTAL_USER_COST......
  • MySQL GTID 主从复制错误修复方法
    MySQL传统的主从复制方式使用master_log_files和master_log_pos两个参数来确定复制位点。当出现复制错误时,可以设置跳过出错的事务来恢复同步,MySQL提供了sql_slave_skip_counter参数来实现此功能。使用方法如下:root@(none)>stopslave;QueryOK,0rowsaffected(0.0......
  • Mysql语法
    树形结构通过节点获取节点所有上级(函数)1createfunctionget_department_list(in_idint)returnsvarchar(100)2READSSQLDATA3begin4declareidsvarchar(1000);5declaretempidint;67settempid=in_id;8whiletempid>0d......
  • lucene入门实例三 (index索引)
    copy《luceneinaction》的一个索引的例子:  packagecom.s.lucene.LIA.index;importjava.io.IOException;importjunit.framework.TestCase;importorg.apache.lucene.analysis.WhitespaceAnalyzer;importorg.apache.lucene.document.Document;importorg.apache.luce......