[Sqlserver][索引]SQL Server 索引概述

devtools/2024/9/20 7:27:46/ 标签: 数据库, java, 大数据

SQL Server 索引概述

索引简介

  • 目的:提升SQL Server性能,加快查询速度,减少响应时间。
  • 限制:合理使用索引,避免过多索引影响数据更新操作和浪费硬盘空间。

索引分类

  • 唯一索引 (UNIQUE):确保索引值唯一。
  • 主键索引:自动创建,具有唯一性。
  • 聚集索引 (CLUSTERED):物理上连续存储记录。
  • 非聚集索引 (NONCLUSTERED):逻辑上连续,物理存储不连续。

创建索引的语法

CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED] INDEX index_name ON object (column_name [ASC | DESC], ...) [ WITH options ] [ ON { filegroup_name | "default" } ]

  • object:指定数据库、所有者和表或视图的名称。
  • options:包括填充因子、排序选项等。

索引参数

  • UNIQUE:创建唯一索引。
  • CLUSTERED:创建聚集索引。
  • NONCLUSTERED:创建非聚集索引。
  • index_name:索引名称。
  • ASC | DESC:指定升序或降序。
  • PAD_INDEX:索引填充选项。
  • FILLFACTOR:指定索引页填充百分比。
  • SORT_IN_TEMPDB:中间排序结果存储选项。
  • IGNORE_DUP_KEY:处理重复键值的选项。
  • STATISTICS_NORECOMPUTE:统计信息自动更新选项。
  • DROP_EXISTING:删除并重新创建索引的选项。

创建索引示例

  • 创建唯一聚集索引和非聚集索引。
  • 创建聚集索引和非聚集索引。
  • 创建非聚集复合索引。
  • 创建非聚集覆盖索引。
  • 创建非聚集筛选索引。

修改和维护索引

  • ALTER INDEX:重建、禁用或重新组织索引。
  • sp_helpindex:查看索引信息。
  • dbcc showcontig:检查索引碎片信息。
  • dbcc indexdefrag:整理索引碎片。
  • updatestatistics:更新统计信息。

索引定义原则

  • 避免对频繁更新的表创建过多索引。
  • 在查询条件、排序或分组操作中常用的列上建立索引。
  • 优先使用小数据类型和整数作为索引键。

http://www.ppmy.cn/devtools/95666.html

相关文章

QT 数据导出到Excel

原创:QT 数据导出到Excel 在Qt自带的axcontainer模块中,我们可以使用QAxObject类来将数据保存到Excel中。Qt中将数据保存到Excel通常有两种方式:一种是以Excel格式导出,需要电脑上安装Office软件;另一种是以CSV格式导出…

React 学习——打包后,包体积可视化

1、安装插件 ( source-map-explorer ) npm i source-map-explorer 2、在配置文件package.json中加入 ( "analyze": "source-map-explorer build/static/js/*.js" ),位置截图 "analyze&q…

力扣热题100_二分查找_35_搜索插入位置

文章目录 题目链接解题思路解题代码 题目链接 35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 …

聊聊JS中的WebSocket

你好,我是沐爸,欢迎点赞、收藏和关注。个人知乎 在JavaScript中,使用WebSocket非常简单直观。通过几行代码,你就可以轻松创建一个WebSocket连接,并监听来自服务器的消息。无论是开发实时聊天应用、在线游戏、实时数据分…

【项目】多设计模式下的同步异步日志系统(一)

继完成仿RabbitMq后,日志消息的不规范在,导致在调试的时候非常的麻烦。吸取了之前的经验后,以后要好好的打日志。博主在学习了设计模式后,做了这个日志系统项目。 总体来说,相对简易RabbitMq的实现更加简单。错误也明…

Containerd初体验

containerd概述 一、定义与功能 定义:Containerd是一个管理容器生命周期、镜像拉取和存储的工业级容器运行时。它提供了容器运行所需的核心功能,如镜像管理、容器生命周期管理、网络和存储管理等。功能: 管理容器的生命周期:从创…

【QT】基于UDP/TCP/串口 的Ymodom通讯协议客户端

【QT】基于UDP/TCP/串口的Ymodom通讯协议客户端 前言Ymodom实现QT实现开源库的二次开发-1开源库的二次开发-2 串口方式实现TCP方式实现UDP方式实现补充:文件读取补充:QT 封装成EXE 前言 Qt 运行环境 Desktop_Qt_5_11_2_MSVC2015_64bit ,基于…

860.柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,…

【算法】蚁群算法

一、引言 蚁群算法(Ant Colony Optimization, ACO)是一种模拟蚂蚁觅食行为的启发式搜索算法。它由Marco Dorigo于1992年提出,适用于解决组合优化问题,如旅行商问题(TSP)、车辆路径问题(VRP&…

Java面试--设计模式

设计模式 目录 设计模式1.单例模式?2.代理模式?3.策略模式?4.工厂模式? 1.单例模式? 单例模式是Java的一种设计思想,用此模式下,某个对象在jvm只允许有一个实例,防止这个对象多次引…

CogVideoX环境搭建推理测试

引子 智谱AI版Sora开源,首个可商用,18G显存即可运行。前文写了Open-Sora1.2的博文,感兴趣的童鞋请移步(Open-Sora1.2环境搭建&推理测试_open sora 1.2-CSDN博客)。对于这种占用资源少,且效果不错的多模…

Python实现水果忍者(开源)

一、整体介绍: 1.1 前言: 游戏代码基于Python制作经典游戏案例-水果忍者做出一些改动,优化并增加了一些功能。作为自己Python阶段学习的结束作品,文章最后有源码链接。 1.2 Python主要知识: (1&#xf…

leetcode387. 字符串中的第一个唯一字符,哈希表

leetcode387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 示例 1: 输入: s “leetcode” 输出: 0 示例 2: 输入: s “loveleetcode” 输出: 2 示例…

Error: Row is required when get row identity

项目场景: 使用Element中的el-table生成表格时,控制台报错:“Error: row is required when get row identity” 错误信息如下: 原因分析: 未添加row-key属性tableList类型不为[]当调用getRowIdentity函数&#xff0…

贪心算法介绍(Greedy Algorithm)

贪心算法介绍(Greedy Algorithm) 1. 贪心算法概念简介 ​ 贪心算法Greedy Algorithm是一种在每一步选择中都采取当前状态下最优(或最有利)决策的算法策略,以期望通过这样的局部最优决策达到全局最优解。它适用于那些…

计算机网络——HTTP协议详解(下)

一、前言 在上篇博客中,我们简单提到了HTTP协议的概念、请求和响应,本篇将会介绍更多的请求和响应的细节。 二、HTTP方法 HTTP方法是用于指定HTTP请求类型的一种规范。HTTP方法定义了对服务器资源的操作方式。通过我们所举的例子中,看到的请…

【Git】远程仓库新建分支后,拉到本地开发

1. 在远程仓库上创建分支 2. git fetch origin:在本地同步远程仓库的分支(获取远程仓库所有分支的所有修改) 3. git remote -a:查看所有分支(远程+本地) 4. git checkout -b 本地名 远程仓库…

springboot的学习(一):springboot的基础

简介 springboot的基础的知识点的学习总结 springboot 设计目的是为了简化spring应用的初始搭建和开发过程。 简单例子 new project,一般用这个阿里的地址:https://start.aliyun.com/ 点击next,选择jdk版本 点击next,选择模…

MySQL学习3之锁机制

一、什么是锁粒度? 锁粒度(Lock Granularity)是指在数据库中锁定数据资源的最小单位。锁粒度决定了锁定操作的范围,即锁定的是整个数据库、整个表、表中的某个分区、表中的某一页还是表中的某一行。 在MySQL中常见的锁粒度有&am…

mac如何恢复被同名替换掉的文件夹 mac文件被替换如何恢复

Mac系统一直以高性能遥遥领先其他的Windows系统,因此,Mac虽然价格远远高出其他的笔记本电脑,但是还是受到了一众用户的青睐。使用mac时,我们也经常会将一个文件命名为已经有了相同文件的文件名,且保存到同一个目标地址…