首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用于查找和创建架构的缺失索引的脚本

缺失索引是指在数据库中没有创建的索引,而这些索引可能会对查询性能产生负面影响。为了查找和创建架构中的缺失索引,可以使用以下脚本:

代码语言:txt
复制
-- 查找缺失索引
SELECT
    t.name AS TableName,
    c.name AS ColumnName,
    ic.index_id AS IndexID,
    ic.index_column_id AS IndexColumnID
FROM
    sys.tables t
INNER JOIN sys.columns c ON t.object_id = c.object_id
LEFT JOIN sys.indexes i ON t.object_id = i.object_id
    AND i.is_primary_key = 0 -- 排除主键索引
    AND i.is_unique_constraint = 0 -- 排除唯一约束索引
LEFT JOIN sys.index_columns ic ON i.object_id = ic.object_id
    AND i.index_id = ic.index_id
    AND c.column_id = ic.column_id
WHERE
    i.object_id IS NULL -- 未创建索引
    AND t.is_ms_shipped = 0 -- 排除系统表
    AND t.name <> 'sysdiagrams' -- 排除特定表
ORDER BY
    t.name,
    c.name;

-- 创建缺失索引
-- CREATE INDEX [IndexName] ON [TableName] ([ColumnName]);

这个脚本通过查询系统表来查找缺失索引的信息,包括表名、列名、索引ID和索引列ID。通过执行这个脚本,可以获取到缺失索引的详细信息。

对于缺失索引的创建,可以根据脚本中的查询结果,针对每个缺失索引使用CREATE INDEX语句来创建索引。需要根据具体情况,将[IndexName]替换为索引的名称,[TableName]替换为表名,[ColumnName]替换为列名。

腾讯云提供了一系列云数据库产品,可以帮助用户管理和优化数据库,包括云数据库 MySQL、云数据库 PostgreSQL、云数据库 MariaDB等。这些产品提供了丰富的功能和工具,可以帮助用户进行索引优化和性能调优。

腾讯云云数据库 MySQL产品介绍:https://cloud.tencent.com/product/cdb_mysql

腾讯云云数据库 PostgreSQL产品介绍:https://cloud.tencent.com/product/cdb_postgresql

腾讯云云数据库 MariaDB产品介绍:https://cloud.tencent.com/product/cdb_mariadb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 基于VPP的第4层高密度可扩展负载均衡器

    背景:自2006年起,构建运行于x86核心的软件型第4层负载均衡器(LB)的努力便已展开。此类LB以虚拟机形式部署,也应用于裸金属实现。超大规模云服务提供商(CSP)已在裸金属上开发出成本更低、易于部署和扩展的解决方案。CSP利用这些LB优化内部基础设施,并将其出售给订阅用户用于租赁实例。其中一种解决方案由谷歌开发并开源,名为MAGLEV,是一款云网络LB。MAGLEV是一款针对超大规模部署设计的通用LB,采用独特的加速技术提升性能。雅虎日本基于FD.io VPP开发了一款优化LB,并添加功能以实现LB即服务(LBaaS)的规模扩展。该实现使用4个核心即可达到10 Gbps的线速。现有的开源软件LB对当前用户存在性能与可扩展性限制,通常每个核心仅限约100万个并发连接和约200万包每秒(Mpps)的吞吐量。终端用户已投入大量资源试图克服以下局限,但尚未达到理想性能水平:

    01

    深入浅出 spring-data-elasticsearch 之 ElasticSearch 架构初探(一)

    本文目录 一、Elasticsearch 基本术语 1.1 文档(Document)、索引(Index)、类型(Type)文档三要素 1.2 集群(Cluster)、节点(Node)、分片(Shard)分布式三要素 二、Elasticsearch 工作原理 2.1 文档存储的路由 2.2 如何健康检查 2.3 如何水平扩容 三、小结 一、Elasticsearch 基本术语 1.1 文档(Document)、索引(Index)、类型(Type)文档三要素 文档(Document) 文档,在面向对象观念就是一个对象。在 ES 里面,是一个大 JSON 对象,是指定了唯一 ID 的最底层或者根对象。文档的位置由 _index、_type 和 _id 唯一标识。 索引(Index) 索引,用于区分文档成组,即分到一组的文档集合。索引,用于存储文档和使文档可被搜索。比如项目存索引 project 里面,交易存索引 sales 等。 类型(Type) 类型,用于区分索引中的文档,即在索引中对数据逻辑分区。比如索引 project 的项目数据,根据项目类型 ui 项目、插画项目等进行区分。 和关系型数据库 MySQL 做个类比: Document 类似于 Record Type 类似于 Table Index 类似于 Database 1.2 集群(Cluster)、节点(Node)、分片(Shard)分布式三要素 集群(Cluster) 服务器集群大家都知道,这里 ES 也是类似的。多个 ElasticSearch 运行实例(节点)组合的组合体是 ElasticSearch 集群。 ElasticSearch 是天然的分布式,通过水平扩容为集群添加更多节点。 集群是去中心化的,有一个主节点(Master)。主节点是动态选举,因此不会出现单点故障。 那分片和节点的配置呢? 节点(Node) 一个 ElasticSearch 运行实例就是节点。顺着集群来,任何节点都可以被选举成为主节点。主节点负责集群内所以变更,比如索引的增加、删除等。所以集群不会因为主节点流量的增大成为瓶颈。因为任何节点都会成为主节点。 下面有 3 个节点,第 1 个节点有:2 个主分片和 1 个副分片。如图:

    04
    领券