sql server很多地方用到hash,计划缓存查找,hash连接,hash聚合等。

hash查找mssql很多设计中都应用了,不过我们能在开发设计中,也可以利用这个特性。

将如果有需求对大文本进行完全匹配,比如查找产品型号(较长字符串),那么可以建立一个产品型号的hash字段,然后在hash字段上进行查找,不过最重要的是如果匹配成功,还不要忘记在where上再加一个条件,就是原始产品型号字段的一致,因为存在极为渺小的可能不同文本能整成一个hash。

hash连接方面,mssql一般都是对于超大数据集而言,对于hash连接的优化,需要区分连接的大小表,以确定构建表和探索表,由于构建表先行,而且hash连接都是超大表的连接,所以需要特别节省内存,在hash节省内存方面的优化,主要是对于查询树的形状进行规划,左深度,右深度,浓密度,有时候需要强制定位hash顺序,指定构建表,有时候需要跟踪是不是会被交换到虚拟文件上,这就需要跟踪救助算法。还有如果连接字段需要查看统计信息是否正常,如果不正常导致系统采用hash,就先更新统计,再看看系统是否还整成hash运算符。

hash聚合如果也和连接差不多,主要在于如果聚合字段分组较少,那么对hash聚合非常有利,内存很省,如果又有排序, 那最好采用流聚合。不过一般情况下除非统计信息出错,否则优化器都能正确选择流聚合和hash聚合。

sql server中的hash应用优化相关推荐

  1. 将一个基于磁盘的表迁移到SQL Server中的一个内存优化的表

    本文是微软的译文,对应的原文是:https://www.red-gate.com/simple-talk/sql/database-administration/migrating-disk-base ...

  2. SQL Server中如何识别、查找未使用的索引(unused indexes)

    在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...

  3. 十步优化SQL Server中的数据访问

    故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户, ...

  4. SQL Server中的SQL语句优化与效率问题

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...

  5. (转)SQLServer_十步优化SQL Server中的数据访问 三

    原文地址:http://tech.it168.com/a2009/1125/814/000000814758_all.shtml 第六步:应用高级索引 实施计算列并在这些列上创建索引 你可能曾经写过从 ...

  6. SQL Server中的执行引擎入门

    简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行.本文旨在分类 ...

  7. SQL Server中关于跟踪(Trace)那点事(转载)

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中"跟踪"也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充 ...

  8. SQL Server中的执行计划

    介绍 (Introduction) In this article, I'm going to explain what the Execution Plans in SQL Server are a ...

  9. SQL Server中的万圣节问题和建议的解决方案

    描述 (Description) As per Wikipedia, the Halloween problem was first discovered by Don Chamberlin, Pat ...

最新文章

  1. 第十四届智能车竞赛规则浅聊
  2. 【Paper】2015_异构无人机群鲁棒一致性协议设计_孙长银
  3. biginteger判断相等_java biginteger怎么比较大小
  4. 解决后退,清空验证码(其它文本框保留)
  5. js 对象数组常用操作 我用到的
  6. c语言赋值运算符左边必须是,C语言运算符入门讲解
  7. 爬虫工具:虚拟机Selenium和PhantomJS,ChromeDriver 镜像安装教程
  8. 蚂蚁金服入职考试_程序员入职蚂蚁金服被质疑,网友评论人生污点,不把外包当人?...
  9. JavaScript中如何自定义属性操作
  10. C语言x86汇编指令理解volatile(三十五)
  11. Navivat 中快速快捷查找表和数据
  12. 两台计算机如何组成局域网,两台电脑如何建立局域网
  13. 测试用例的评审和变更
  14. 棋类游戏的真正收获 - 延迟满足感
  15. Java学习方法的一点个人见解-完整版
  16. NLP Prompting for Text Classification(1)
  17. 新机如何把机械硬盘中的系统克隆到固态硬盘
  18. 基于python和线上网站wordart的词云生成
  19. C/C++程序的编译过程
  20. 【服务器搭建个人网站】教程三:怎样购买域名并怎样进行域名解析 来啦

热门文章

  1. HDU 5972 Regular Number(ShiftAnd+读入优化)
  2. UIScrollView
  3. 零基础学汇编 --小甲鱼
  4. [linux内核][linux中断]——软中断机制
  5. javascript变量声明 及作用域
  6. SDWebImage使用——一个可管理远程图片加载的类库
  7. [C#] enum 枚举
  8. Partial Class部分类
  9. 软件测试工程师职业介绍和规划
  10. javascript身份证号码验证函数支持带x