SQLServer创建索引

Jenkins Job DSL:用代码管理CI/CD配置的实践指南 Jenkins 是持续集成(CI)领域的经典开源平台,其核心价值在于自动化构建与交付流程。然而传统 UI 配置方式导致配置不可版本化、难以复现、审计困难,严重制约团队规模化协作效率。Job DSL 作为一种声明式配置即代码(IaC)方案,通过 Groovy 脚本驱动 Jenkins 内部 API,实现 Job、View、Folder 等资源的程序化创建与维护,天然支持 Git 版本控制、权限审计与环境一致性保障。它不替代 Pipeline,而是与其协同构成‘流程定义’与‘基础设施定义’双轨体系,显著提升 C 阅读详情

什么是索引

拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。

同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。

  • SQL Server中的数据也是按页( 4KB )存放
  • 索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法来编排查询数据 。
  • 索引页:数据库中存储索引的数据页;索引页类似于汉语字(词)典中按拼音或笔画排序的目录页。
  • 索引的作用:通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。

索引类型

  • 唯一索引:唯一索引不允许两行具有相同的索引值
  • 主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空
  • 聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个
  • 非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于249个

索引类型:再次用汉语字典打比方,希望大家能够明白聚集索引和非聚集索引这两个概念。

唯一索引:

唯一索引不允许两行具有相同的索引值。

如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在stuInfo表中的学员员身份证号(stuID) 列上创建了唯一索引,则所有学员的身份证号不能重复。

提示:创建了唯一约束,将自动创建唯一索引。尽管唯一索引有助于找到信息,但为了获得最佳性能,建议使用主键约束或唯一约束。

主键索引:

在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。

聚集索引(clustered index)

在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。例如:汉语字(词)典默认按拼音排序编排字典中的每页页码。拼音字母a,b,c,d……x,y,z就是索引的逻辑顺序,而页码1,2,3……就是物理顺序。默认按拼音排序的字典,其索引顺序和逻辑顺序是一致的。即拼音顺序较后的字(词)对应的页码也较大。如拼音“ha”对应的字(词)页码就比拼音“ba” 对应的字(词)页码靠后。

非聚集索引(Non-clustered)

如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引(nonclustered index)有更快的数据访问速度。例如,按笔画排序的索引就是非聚集索引,“1”画的字(词)对应的页码可能比“3”画的字(词)对应的页码大(靠后)。

提示:SQL Server中,一个表只能创建1个聚集索引,多个非聚集索引。设置某列为主键,该列就默认为聚集索引

如何创建索引

使用T-SQL语句创建索引的语法:

CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] 

    INDEX   index_name

     ON table_name (column_name…)

      [WITH FILLFACTOR=x]

q UNIQUE表示唯一索引,可选

q CLUSTERED、NONCLUSTERED表示聚集索引还是非聚集索引,可选

q FILLFACTOR表示填充因子,指定一个0到100之间的值,该值指示索引页填满的空间所占的百分比

在stuMarks表的writtenExam列创建索引:

USE stuDB
Go

IF EXISTS (SELECT name FROM sysindexes 
WHERE name = 'IX_writtenExam') 
DROP INDEX stuMarks.IX_writtenExam 

--笔试列创建非聚集索引:填充因子为30%
CREATE NONCLUSTERED INDEX IX_writtenExam 
ON stuMarks(writtenExam) 
WITH FILLFACTOR= 30
go

--指定按索引 IX_writtenExam 查询
SELECT * FROM stuMarks (INDEX=IX_writtenExam) WHERE writtenExam BETWEEN 60 AND 90

虽然我们可以指定SQL Server按哪个索引进行数据查询,但一般不需要我们人工指定。SQL Server将会根据我们创建的索引,自动优化查询 。

索引的优缺点

  • 优点

    – 加快访问速度

    – 加强行的唯一性

  • 缺点

    – 带索引的表在数据库中需要更多的存储空间

    – 操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新

创建索引的指导原则

  • 请按照下列标准选择建立索引的列。

    – 该列用于频繁搜索

    – 该列用于对数据进行排序

  • 请不要使用下面的列创建索引:
    – 列中仅包含几个不同的值。

    – 表中仅包含几行。为小型表创建索引可能不太划算,因为SQLServer在索引中搜索数据所花的时间比在表中逐行搜索所花的时间更长

【华为OD机试真题】390、AI面板识别 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 题目描述 >AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。   由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),   请输出先行后列排序的指示灯的编号,排序规则:   1、每次在尚未排序的灯中挑选最高的灯作为的基准灯   2、找出和基准灯属于同一行所有的灯进行排序。两个灯高低偏差不超过灯半径算同一行(即两个灯坐标的差 ≤ 灯高度的一半) 阅读详情

相关推荐

kaggle竞赛平台上数据集下载详解

从kaggle 网站上下载数据集既保证了速度又避免了网络的不稳定造成下载失败问题。该平台也可以上传代码作为自己的代码库,不过本人更习惯将代码上传到github上。希望本人整理的kaggle库使用技巧能够帮助到正在阅读本博客的你。此外还有一篇博客针对kaggle数据集下载问题的几个问题的相关文章进行了整理【博客链接】。

li1784506的博客 2万+

SqlServer创建各类索引脚本

聚集索引 (Clustered Index): 表数据按索引排序,表中只能有一个聚集索引。非聚集索引 (Nonclustered Index): 存储键值及指针,不影响表数据的物理顺序。唯一索引 (Unique Index): 确保索引列值唯一。过滤索引 (Filtered Index): 针对部分数据的索引,节省存储空间。覆盖索引 (Covering Index): 包含查询所需的所有列,避免数据查找。全文索引 (Full-Text Index): 用于优化文本字段的复杂搜索。

极客神殿 882

qt工程引入opencv库步骤

第一步:新建qt工程 第二步:在工程名.pro文件中添加opencv库的路径                   INCLUDEPATH += /home/liyuanzhe/opencv-2.4.8/include/opencv \ /home/liyuanzhe/opencv-2.4.8/include/opencv2 LIBS += /home/liyuanzhe/open

superyuanzhe的专栏 5721

SqlServer索引

一、创建索引: 语法: CREATE [索引类型] INDEX 索引名称 ON 表名(列名) 1.聚集索引 create clustered index index_name on table_name (cloumn_name); 2.非聚集索引 create nonclustered index index_name on table_name (cloumn_name); 3.唯一索引 create unique index index_name on table_name(cloumn_name)

黄瓜炒鸡蛋的博客 4490

洛谷 P5736 【深基7.例2】质数筛

题目描述 输入 n(n\le100)n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。 输入格式 无 输出格式 无 输入输出样例 输入 #1 复制 5 3 4 5 6 7 输出 #1 复制 3 5 7 板子题,使用一下线性筛 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using n

qq_37978559的博客 1117

C# WinForm项目目录结构详解:从入门到精通(附常见问题解决方案)

本文详细解析了C# WinForm项目目录结构,从解决方案与项目基础结构到核心文件功能,再到关键目录解析,帮助开发者快速掌握WinForm项目组织方式。文章还提供了常见问题解决方案,如引用丢失、配置文件不生效等,是WinForm开发从入门到精通的实用指南。

dream的博客 646

SQLServer创建索引的5种方法

前期准备:create table Employee ( ID int not null primary key, Name nvarchar(4), Credit_Card_ID varbinary(max)); --- 小心这种数据类型。 go说明:本表上的索引,都会在创建下一个索引前删除。创建聚集索引方法 1、ALTER

极客神殿 6万+

一文看懂 SAP Integration Suite:从架构治理、接口编排到事件驱动的集成全景

SAP Integration Suite是企业数字化转型中的关键集成平台,通过统一的方法论和工具链解决系统互联、数据对齐和流程协同等复杂问题。其核心能力包括:1)集成评估(Integration Assessment)提供战略规划框架;2)迁移评估(Migration Assessment)支持从传统平台向云的平滑过渡;3)云集成(Cloud Integration)实现日常业务流程编排;4)集成顾问(Integration Advisor)简化B2B标准映射;5)贸易伙伴管理(TPM)优化外部协作流程;

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 501

Sql Server索引的创建及优化

SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。

a876106354的博客 4748

42、Windows Server Update Services(WSUS)全面指南

本文全面介绍了Windows Server Update Services(WSUS)的安装、配置、管理与优化策略。内容涵盖WSUS基础认知、客户端更新问题解决、多服务器架构设计、计算机分组策略、更新审批与报告查看,并深入探讨了SSL加密配置、性能优化、与其他系统(如AD和SCCM)集成以及常见故障排查方法。通过本指南,IT管理员可高效部署和管理企业级软件更新,提升安全性和运维效率。

cicd6pipeline的博客 96

TC3XX - MCAL知识点(二十七):SENT Mcal配置及代码实战(单边半字节传输协议)

SENT协议只有一根线,异步传输!Sent协议的全称为Single Edge Nibble Trans .isson,单边半字节传输协议,是一种单线异步串行通信协议。Sent报文包含8个Nibble和一个校准位如图1所示,每一个Nibble数据被编码成PWM方式。设计这种协议的目的是用在与汽车ECU快速交互信息的传感器上,以此来取代低精确度的10bit AD和PWM。Sent是一种点对点的单方向从传感器到控制端的协议,控制器不需要同步信号。

梦想技术家 2271

SQL Server创建索引

什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。 同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度...

zhudagen 1385

【项目实战】DevOps制品管理之JFrog Artifactory介绍

JFrog Artifactory是一款领先的二进制软件制品仓库管理工具,由JFrog公司开发。

奶爸的编程之路,也就一周冷个三天 1352

SQLServer 索引操作

创建索引 数据库创建索引操作图: 第一种创建索引方式: 第二种创建索引方式: 第三中创建索引的方式: 使用CREATE INDEX语句创建索引 CREATE[ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX索引名 ON {表名|视图名} (列名[ ASC | DESC ] [ ,...n ] ) ...

21号先锋者 2671

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SQLServer 语句 创建索引

SQLServer 语句 创建索引

hfrujhv的博客 4770

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SQLServer 语句-创建索引

SQLServer 语句-创建索引

qq_43685588的博客 4089

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SQLServer之创建全文索引

SQLServer之创建全文索引 创建全文索引的必须条件 必须具有全文目录,然后才能创建全文索引。目录是包含一个或多个全文索引的虚拟容器。 使用SSMS数据库管理工具创建全文索引 1、连接数据库,选择数据库,选择数据表-》右键数据表-》选择全文索引-》选择定义全文索引。 2、在全文索引向导点击下一步。 3、在全文索引向导弹出框-》选择一个最小唯一索引-》点击下一步。 ...

cxu123321的博客 1097

Sqlserver 自动创建索引

PRINT '失败语句: ' + ERROR_PROCEDURE() + ' (行号:' + CAST(ERROR_LINE() AS VARCHAR) + ')';PRINT '-- 执行模式: ' + CASE @DebugMode WHEN 1 THEN '调试模式 (仅显示SQL)' ELSE '执行模式 (实际创建索引)' END;PRINT '-- 检测到高价值缺失索引: ' + CAST(@IndexCount AS VARCHAR) + ' 个';PRINT '-- 开始创建索引...';

LL548542的博客 588

SQLServer之创建主XML索引

SQLServer之创建主XML索引 2018-09-27 15:45:33小子pk了阅读数 227更多 分类专栏:SQLServer 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/qq_24188927/article/details/82868213 创建主XML索...

cxu123321的博客 323

SQL Server索引管理——索引创建建议和经验

SQL Server索引管理——索引创建建议和经验 索引创建的建议 检查WHERE语句和JOIN关联列 使用窄索引 检查列的唯一值(基数) 考虑列的顺序 考虑索引类型(行索引 VS. 列索引;聚集索引 VS 非聚集索引) 如果一个表的数据较少,小于8KB,所有数据在一页上,那么表扫描可能比索引查找更适合 使用窄索引 你可以使用表中的多列组合创建索引。为获取最好的性能,使索引中所包含的列尽可能的少。你也应该避免在索引中国使用宽数据类型列。拥有数据类型(CHAR,VARCHAR、NCHAR、NVARCHAR)的

qq_43885250的博客 1014

SqlServer索引的检索及创建

SqlServer索引的检索及创建索引的检索索引的创建 索引的检索 要检索表中的索引信息,使用如下sql SELECT 索引名称=a.name ,表名=c.name ,索引字段名=d.name ,索引字段位置=d.colid FROM sysindexes a JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid JOIN sysobjects c ON b.id=c.id JOIN syscolumns d

super_devil_111的博客 895

SqlServer2008实例28索引预览之创建表索引

下面说明如何创建两种类型的索引,一个是聚集的,另一个是非聚集的。通过使用CREATE INDEX命令创建索引基本语法 如下所示: CREATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name ON { [database_name.[schama_name]. | schema_name.] table_or_view_name } ( column[ASC | OESC][,…n]) ...

复行数十步 338

SQL server 临表创建索引

我整理的一些关于【索引】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/yOSbkRSQL Server 临时表创建索引的详细指南 在SQL Server中,临时表是非常有用的工具,它们通常用于存储中间结果。然而,在使用临时表时,随着数据量的增加,查询性能可能会下降。为了提高...

weixin_41141217的博客 685

SQLServer之创建非聚集索引

开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束。 如果不存在该表的聚集索引,则可以指定唯一聚集索引。 有关详细信息,请参阅 Unique Constraints and Check Constraints。 独立于约束的索引 默认情况下,如果未指定聚集,...

小子pk了的博客 8028
上一篇: SQLServer创建索引的5种方法
下一篇: 哈希计算器
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值