iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle的基数与选择性分析
  • 788
分享到

Oracle的基数与选择性分析

2024-04-02 19:04:59 788人浏览 独家记忆
摘要

本篇内容主要讲解“oracle的基数与选择性分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle的基数与选择性分析”吧! 基数  

本篇内容主要讲解“oracle的基数与选择性分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle的基数与选择性分析”吧!

基数

    一个列中唯一键(Distinct_keys)的个数,如有一个100W行的表,性别列的基数为2 (select distinct gender from test),主键列的基数为100W(select distinct mid from test);

选择性

    基数/总行数所占的百分比,性别 2/100w * 100% 主键 100%  选择性越高 越有利于使用索引 20~30%就算是比较高了

1、如何判断是一个索引创建的是好还是坏呢? 

     就看他的基数和选择性 如果基数大选择性大 那么使用索引就比较好

2、性别这个列使不使用索引?

要看情况:

从OLTP 系统上来说在选择性低的列上创建索引肯定不适合的,基数/选择性高的列,适合建立B-Tree索引;

    在OLAP系统中基数低的列根据需求,有可能会建立bitmap索引

3、如何查看列的选择性和基数呢?

创建一个test测试表,

create table test as select * from dba_objects;  

create index idx_owner on test(owner);    

create index idx_object_name on test(object_name);

查看owner列和object_name列的基数

Oracle的基数与选择性分析select count(distinct owner),count(distinct object_name) from test;

查看列的基数和选择性,可以使用如下脚本

select count(distinct column_name),count(*) total_rows,count(distinct column_name) / count(*) * 100 selectivity from table_name;  


我们查看test表的owner的基数和选择性

select ,count(*) total_rows,count(distinct owner) / count(*) * 100 selectivity from test;

count(distinct owner)Oracle的基数与选择性分析列为基数

total_rows列为总行数

selectivity列为选择性


在做SQL优化的时候,不要急忙运行上面SQL,首先应该检查表的segment_size有多大,如果表的segment_size过大(比如超过SGA的buffer_cache),你要考虑运行上面SQL

是否对你当前的系统有影响,如果是测试环境,无所谓,如果是生产环境,要小心谨慎。

--其实建议使用统计信息表(dba_tab_col_statistics 、dba_tables )里的信息来查看选择性和基数,这里注意我们首先要收集统计信息,否则返回的列是空值。

select a.column_name,

b.num_rows,

a.num_distinct Cardinality,

round(a.num_distinct / b.num_rows * 100, 2) selectivity,

a.histogram,

a.num_buckets

from dba_tab_col_statistics a, dba_tables b

where a.owner = b.owner

and a.table_name = b.table_name

and a.owner =  upper('&owner')

and a.table_name =  upper('&table_name')

and a.column_name = upper('&column_name');

Oracle的基数与选择性分析

4、找出系统某个用户中不合理(选择性很低)的索引脚本

select a.OWNER,

a.INDEX_NAME,

a.TABLE_NAME,

a.DISTINCT_KEYS Cardinality,

a.NUM_ROWS,

round(a.DISTINCT_KEYS / NUM_ROWS * 100, 2) selectivity

from dba_ind_statistics a

where A.OWNER = upper('&owner');

selectivity <5 一般选择性小于5% 就属于选择性差Oracle的基数与选择性分析






如果统计信息有可能不是最新的最好使用下面的语句

select table_name,index_name,round(distinct_keys/num_rows * 100, 2) selectivity from user_indexes;

但是选择性低的列也不一定不需要建索引要根据业务来比如有7W行记录 SCOTT的有23行如果经常根据SCOTT查要建立索引Oracle的基数与选择性分析

到此,相信大家对“Oracle的基数与选择性分析”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle的基数与选择性分析

本文链接: https://www.lsjlt.com/news/65325.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle的基数与选择性分析
    本篇内容主要讲解“Oracle的基数与选择性分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle的基数与选择性分析”吧! 基数  ...
    99+
    2024-04-02
  • Oracle计算字段选择性分析
    本篇内容介绍了“Oracle计算字段选择性分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!selec&#...
    99+
    2024-04-02
  • python数据分析之线性回归选择基金
    目录1 前言2 基金趋势分析3 数据抓取与分析3.1 基金数据抓取3.2 数据分析4 总结1 前言 在前面的章节中我们牛刀小试,一直在使用python爬虫去抓取数据,然后把数据信息存...
    99+
    2024-04-02
  • jQuery 基础选择器与属性选择器
    目录基础选择器All Selector ("*")Class Selector (".class")Element Selector (&qu...
    99+
    2024-04-02
  • 基于jQuery选择器之表单对象属性筛选选择器的示例分析
    这篇文章给大家分享的是有关基于jQuery选择器之表单对象属性筛选选择器的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。<!DOCTYPE html>...
    99+
    2024-04-02
  • CSS属性选择器的示例分析
    这篇文章主要介绍CSS属性选择器的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具有特定属性的HTML元素样式具有特定属性的HTML元素样式不仅仅是class和id。注意:I...
    99+
    2024-04-02
  • jQuery选择器之属性过滤选择器的示例分析
    小编给大家分享一下jQuery选择器之属性过滤选择器的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下<...
    99+
    2024-04-02
  • Css3属性选择器和伪类选择器的示例分析
    这篇文章主要介绍了Css3属性选择器和伪类选择器的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。属性选择器: [attr~...
    99+
    2024-04-02
  • jQuery选择器特殊字符与属性空格的示例分析
    这篇文章主要介绍了jQuery选择器特殊字符与属性空格的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、选择器中含有特殊符号的注意...
    99+
    2024-04-02
  • CLR集成性能设计选择的示例分析
    这篇文章将为大家详细讲解有关CLR集成性能设计选择的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.编译过程 在编译 SQL 表达式时,如果遇到对托管例程的引用,则生成 Microsoft 中间...
    99+
    2023-06-17
  • css中属性和值选择器的示例分析
    这篇文章将为大家详细讲解有关css中属性和值选择器的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 属性和值选择器 下面的例子为 title="W3...
    99+
    2024-04-02
  • vue scoped与深度选择器deep的原理分析
    目录scoped的作用deep作用总结JS引入模块化概念后,变得更易于开发维护,但是css样式由于其特殊性,一直没有实现模块化,scoped的出现就是为了实现样式模块化,其本质利用属...
    99+
    2022-11-13
    vue deep 原理 vue scoped的原理 深度选择器deep vue scoped
  • Go函数性能优化:基准测试与性能分析方法
    了解 go 函数性能优化至关重要,可以通过以下方法实现:基准测试:使用 go 的 testing 包测量执行时间和资源消耗,例如基准测试字符串连接策略。性能分析:使用 runtime/p...
    99+
    2024-05-03
    性能优化 基准测试
  • css选择器的示例分析
    这篇文章主要介绍了css选择器的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。语法结构Id选择器格式#id :#+元素的i...
    99+
    2024-04-02
  • CSS选择符之子代选择符的示例分析
    这篇文章给大家分享的是有关CSS选择符之子代选择符的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。后代选择符用于选取一个标签的所有后代,包括子代和孙辈等;而子代选择符只选取指定父辈的子代标签(指定标签元素...
    99+
    2023-06-08
  • PHP框架选择及几款主流框架的性能基本评测的示例分析
    小编给大家分享一下PHP框架选择及几款主流框架的性能基本评测的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!需求毫无疑问,Web框架技术在近几年已经得到了...
    99+
    2023-06-10
  • C语言选择、循环、函数、数组与操作符实例分析
    本篇内容介绍了“C语言选择、循环、函数、数组与操作符实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、选择语句如果你好好学习,校招时...
    99+
    2023-06-30
  • Oracle 与spark-local 模式的性能对比分析
    这篇文章将为大家详细讲解有关Oracle 与spark-local 模式的性能对比分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Oracle中的查询如果...
    99+
    2024-04-02
  • 阿里云的数据库选择解析与比较
    本文将深入探讨阿里云提供的数据库选项,包括MySQL、PostgreSQL、MongoDB和Redis。我们将分析每种数据库的特点、性能优势以及适用场景,并结合实例来展示它们在不同业务场景下的应用。 MySQL作为最流行的开源关系型数据库之...
    99+
    2024-01-17
    阿里 数据库
  • Python爬虫选择HTTP代理重要性的示例分析
    小编给大家分享一下Python爬虫选择HTTP代理重要性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python主要用来做什么Python主要应用于:...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作