zoukankan      html  css  js  c++  java
  • CHECKSUM建立索引


    /*
    Author:浪客
    Location:BeiJing
    Date:GETDATE()
    Descript:利用CHECKSUM建立索引
    */

    SELECT CHECKSUM('我和你');
    USE tempdb;
    GO
    DROP TABLE dbo.T
    CREATE TABLE dbo.T(ID INT PRIMARY KEY IDENTITY(1,1),[Name] NVARCHAR(MAX));

    --这里我偷懒一下,自己注意在IDE中,关闭,不要插入太多了.哈
    WHILE 1=1
    INSERT INTO dbo.T
    SELECT CAST(NEWID() AS NVARCHAR(36))

    --表 'T'。扫描计数 1,逻辑读取 5059 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    --
    SQL Server 执行时间:
    --
     CPU 时间 = 922 毫秒,占用时间 = 918 毫秒。
    SET STATISTICS IO ON
    SET STATISTICS TIME ON
    SELECT *FROM dbo.T WHERE [Name] = '6DDC1B6C-0AC3-475F-8270-EA14AE69878A'
    SET STATISTICS TIME OFF
    SET STATISTICS IO OFF

    --消息 1919,级别 16,状态 1,第 1 行
    --
    表 'dbo.T' 中的列 'Name' 的类型不能用作索引中的键列。一些大数据类型列还没发建立索引呢.怎么搞呢?
    CREATE INDEX [IX_T_Name] ON dbo.T(Name);


    --难道我们必须要表(聚集索引)扫描吗或者非全文索引,我们可以使用CHECKSUM 来做

    ALTER TABLE dbo.T ADD Name_Idx AS (CHECKSUM(Name))

    CREATE INDEX [IX_T_Name] ON dbo.T(Name_Idx)

    --表 'T'。扫描计数 1,逻辑读取 6 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
    --
    SQL Server 执行时间:
    --
    CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
    SET STATISTICS IO ON
    SET STATISTICS TIME ON
    SELECT *FROM dbo.T WHERE CHECKSUM('6DDC1B6C-0AC3-475F-8270-EA14AE69878A'=Name_Idx
    SET STATISTICS TIME OFF
    SET STATISTICS IO OFF

    上述也只是出苗粗描了一下,建立索引的话,是不能超过900字节
    的字段的.博友可以看看我的两篇索引的文章.
    文章过后,和同事探讨了一下这个问题,CHECKSUM主要是用于奇偶校检的哈希值,但是哈希可能会出现重复值,所以一直担心会不会CHECKSUM存在重复值的问题,但是MSDN对CHECKSUM解释很少,也没有具体的实现算法...
    但是今天无意中在 用户自定义函数中,找到了类似的答案说 CHECKSUM是确定性函数,结果很明显,我担心的事可以散了.呵呵所以把文章顶上去...
  • 相关阅读:
    377 TODOMVC:准备工作,配置 vue,列表渲染,添加任务,删除任务,编辑任务 ,Footer 的显示与隐藏
    376 vue指令:v-model (常用),v-text 和 v-html,v-bind (常用),操作样式,v-on,v-for,v-pre,v-once,v-cloak
    375 vue数据双向绑定演示:一个 input + v-model,Object.defineProperty,数据双向绑定的原理简单实现
    374 vue起步
    373 Vue 介绍,框架和库的区别 ,MVC + MVVM
    实现一个vue-router插件
    浅谈react context
    Flutter网络请求与JSON解析
    Vue中组件
    vue数据监听
  • 原文地址:https://www.cnblogs.com/bhtfg538/p/1575777.html
Copyright © 2011-2022 走看看