sqlServer数据库索引

2023-11-07

08 索引

8.1 定义:

​ 对数据库表中一个或者多个列进行排序的结构,有助于更快的获取信息,是用来获取定位的。

8.2 作用

​ 加快数据检索

​ 保证数据的一致性

​ 实现表与表之前的参照完整性

​ 副作用:

​ 创建索引会占用空间并耗费一定的时间

​ 创建索引会减慢数据修改的速度

8.3 适合的索引列

​ 1、表的主键、外键必须有索引;
​ 2、数据量超过300的表应该有索引;
​ 3、经常与其他表进行连接的表,在连接字段上应该建立索引;
​ 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
​ 5、索引应该建在选择性高的字段上;
​ 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
​ 7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
​ A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
​ B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
​ C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
​ D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
​ E、如果既有

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlServer数据库索引 的相关文章

  • 如何将彼此“接近”的纬度/经度点分组?

    我有一个用户提交的纬度 经度点的数据库 并且正在尝试将 接近 点分组在一起 接近 是相对的 但目前看来约为 500 英尺 起初 我似乎只能按前 3 个小数位具有相同纬度 经度的行进行分组 大约是一个 300x300 的盒子 了解当您远离赤道
  • 删除重复的行并需要在mysql中保留所有行中的一个[重复]

    这个问题在这里已经有答案了 我想删除基于两列的重复行 但需要保留所有行 1 行 重复行可以多于两行 例如 ID NAME PHONE 1 NIL 1234 2 NIL 1234 3 NIL 1234 4 MES 5989 我想从上面 3 行
  • 合并sql中的列

    我正在使用 SQL Server 2017 有一个存储过程 其中我有一个带有连接的简单选择 例如 SELECT p legacyKey AS JobNumber p Name AS JobName G Label AS DesignStat
  • RANK() OVER PARTITION 并重置 RANK

    如何获得在分区更改时重新启动的 RANK 我有这张表 ID Date Value 1 2015 01 01 1 2 2015 01 02 1
  • SQL Server 2012:有条件地增加计数器用户 ROW_NUMBER()

    我正在尝试申请ROW NUMBER 根据特定条件增加计数器 我的数据如下所示 目标计数器是Prep column id DSR PrepIndicator Prep 1662835 1 1 1 1662835 14 2 2 1662835
  • ASP SQL Server 连接

  • 在 Mysql 上使用 EntityManager JPA 运行脚本

    我正在尝试运行脚本 sql 文件 但由于我尝试了多种方法 因此出现多个错误 这是我的主要 sql 脚本 INSERT INTO Unity VALUES 11 paq 0 2013 04 15 11 41 37 Admin Paquete
  • 在 PostgreSql 中计算百分比

    例如我有一个这样的表 string adm A 2 A 1 B 2 A 1 C 1 A 2 通过 SQL 查询 我想要这样的结果 string perc adm A 50 B 100 C 0 我想要每个字符串中数字 2 出现的百分比 我可以
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 何时在 mysql 中使用 Union [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于 Union 您会在什么现实情况下使用它 因为对我来说 对具有不同列用途 含义的两个表中的两个选择查询使用联合是没有意义的 例如
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • 选择多列 按一列分组 按计数排序

    我在Oracle中有以下数据集 c1 c2 c3 1A2 cat black 1G2 dog red B11 frog green 1G2 girl red 试图得到以下结果 基本上我首先尝试获取具有重复 c1 的行 c1 c2 c3 1G
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 更好地理解 SQL Server 中的架构

    就像标题一样 我还是一个SQLServer菜鸟 当我创建表 Mytable 时 数据库中显示 dbo Mytable 但有人能让我更好地理解模式吗 另外 在 Server 2008 TSQL 一书中 Itzik 说 在你的数据库中 表属于模
  • 时间序列数据的自连接

    我需要一些帮助来完成我认为应该是相当简单的自连接查询 只需要将两条记录中匹配的开始时间和结束时间合并为一条记录 假设我的表中有以下内容 Time Event 08 00 Start 09 00 Stop 10 30 Start 10 45
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ

随机推荐

  • bwlabel函数的C语言实现及用法解析

    bwlabel函数的C语言实现及用法解析 在图像处理的领域中 连通区域标记是一项非常重要的技术 在C语言中 我们可以使用bwlabel函数来实现这个功能 本文将介绍bwlabel函数的实现原理和用法 并通过示例代码来演示其功能 bwlabe
  • 虚函数表详解

    一 概述 为了实现C 的多态 C 使用了一种动态绑定的技术 这个技术的核心是虚函数表 下文简称虚表 本文介绍虚函数表是如何实现动态绑定的 二 类的虚表 每个包含了虚函数的类都包含一个虚表 我们知道 当一个类 A 继承另一个类 B 时 类A会
  • 机器视觉软件工程师的生活是怎样的?

    大家好 本人是刚刚入职的视觉工程师 现在已经一年了 也给大家分享一下在这一段时间里 我做了什么 以及学到了什么 对了 虽然我只做了两个月的视觉工程师 但是我已经连续写了12年的日记了 我想把这个好习惯一直延续下去 也算是做个记录 可能没有人
  • c++多态及虚函数表内部原理实战详解

    1 多态实现方式 c 的多态机制主要是靠虚函数来实现 具体来说 就是用父类的指针指向子类的实例 然后通过父类指针调用子类对象中的成员函数 这样 就实现了父类指针的 多态 想了解虚函数实现机制 就必须先了解对象的存储方式 2 类的存储方式 我
  • python span标签的text属性_python + selenium 获取标签文本的为空解决办法

    一 确定元素是否被隐藏 link driver find element By xx value is displayed print link 如果输出结果为False 说明元素被隐藏了 二 解决方法 1 修改当前定位元素方式方法 修改定
  • 使react组件重新渲染的三种方式

    1 setState 2 props发生变化 3 forceUpdate
  • 目前最大的人像抠图数据集P3M-10k开源了!助力隐私保护的人像抠图研究

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt CV 微信技术交流群 转载自 京东探索研究院 人像抠图 是指从人物图像中提取人物前景 是计算机视觉领域的基础研究问题之一 1 2 3 4 8 在下游任务
  • 基于vmdk文件创建虚拟机

    基于vmdk文件创建虚拟机 1 准备vmdk文件 下载地址如下 链接 https pan baidu com s 1coQuZw8cgg5oU5bSegsS7Q pwd 5mv0 提取码 5mv0 账号 密码 root sinzuo 2 创
  • react 函数组件和class组件的区别

    一 组件的定义 1 class组件 继承React Component 且需要创建render方法来返回元素 class Welcome extends React Component render return h1 Hello this
  • 使用gdb调试多进程和多线程

    GDB调试多进程 1 默认设置下 在调试多进程程序时GDB只会调试主进程 但是GDB gt V7 0 支持多进程的分别以及同时调试 换句话说 GDB可以同时调试多个程序 只需要设置follow fork mode 默认值 parent 和d
  • 查看pcie总线上的设备ID以及带宽计算

    1 获取设备在pcie总线上的ID lspci 00 00 0 Class 0600 Device 8086 190f rev 07 00 01 0 Class 0604 Device 8086 1901 rev 07 00 01 1 Cl
  • 用python解“计算工资”题

    7 10 计算工资 某公司员工的工资计算方法如下 一周内工作时间不超过40小时 按正常工作时间计酬 超出40小时的工作时间部分 按正常工作时间报酬的1 5倍计酬 员工按进公司时间分为新职工和老职工 进公司不少于5年的员工为老职工 5年以下的
  • v-show和v-if有何异同?

    v show 用于根据条件展示元素 带有 v show 指令的元素始终会被渲染并保留在 DOM 中 v show 只是简单地切换元素的 CSS property display 注意 v show 不支持
  • SQL Server(三)-查询数据(3)

    多表连接查询和子查询 两表连接查询 多表连接查询 左外 右外 全外连接查询 组合查询 子查询 在SSMS的查询设计器中设计查询1 连接查询 1 使用无连接规则连接两表 不设置WHERE子句 所谓无连接规则连接 就是指连接两表的SELECT语
  • PPT怎么切换不同的母版

    首先选中要改变母版的PPT 右击鼠标出现菜单栏 选择版式 版式里面有所有的幻灯片母版可供选择
  • STM32------PWM

    文章目录 前言 一 PWM概述 二 库函数 1 GPIO引脚映射 2 定时器通道1配置 3 定时器通道1比较值 三 PWM1和PWM2模式 1 定义 2 示例 四 dc调光与pwm调光区别 五 呼吸灯源码下载 总结 前言 STM32 PWM
  • centos7防火墙配置详细

    一 条件防火墙是开启的 systemctl start firewalld 1 查看防火墙的配置 firewall cmd state firewall cmd list all 2 开放80端口 firewall cmd permanen
  • 数据挖掘学习(二)——数据探索与清洗

    笔者是一个痴迷于挖掘数据中的价值的学习人 希望在平日的工作学习中 挖掘数据的价值 找寻数据的秘密 笔者认为 数据的价值不仅仅只体现在企业中 个人也可以体会到数据的魅力 用技术力量探索行为密码 让大数据助跑每一个人 欢迎直筒们关注我的公众号
  • 我遇到的BUG:WSL2 忘记用户密码

    我之前忘记了WSL的密码 在网上看了很多瞎写的博文 没起到作用 后来偶然看到一篇文章 解决了这个问题 要在WSL中重置用户密码 需要 在windows命令行里将默认用户切换为root 在WSL里重置用户密码 在windows命令行里将默认用
  • sqlServer数据库索引

    08 索引 8 1 定义 对数据库表中一个或者多个列进行排序的结构 有助于更快的获取信息 是用来获取定位的 8 2 作用 加快数据检索 保证数据的一致性 实现表与表之前的参照完整性 副作用 创建索引会占用空间并耗费一定的时间 创建索引会减慢