iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle 41亿数据量表建立索引记录的方法是什么
  • 504
分享到

Oracle 41亿数据量表建立索引记录的方法是什么

2024-04-02 19:04:59 504人浏览 八月长安
摘要

本篇内容介绍了“oracle 41亿数据量表建立索引记录的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学

本篇内容介绍了“oracle 41亿数据量表建立索引记录的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

背景

    生产系统一个流水表,41亿数据,有一列原先开发建立了bitmap index,由于该表为流水表,有大量插入,alert日志中一直报

dead lock,死,由于位图索引特殊性,即使在没有任何约束情况下,由于该列的distinct值非常低,41亿,只有170左右的distinct value,所以造成大量的dead lock,需要删除bitmap index,改为global nORMal index。

    该表为按天分区。

建索引语句

alter session set workarea_size_policy=MANUAL;              
alter session set db_file_multiblock_read_count=512;
alter session set events ‘10351 trace name context forever, level 128’;
alter session set sort_area_size=2147483648;
alter session set “_sort_multiblock_read_count”=128;
alter session enable parallel ddl;
alter session enable parallel dml;
set timing on
create index idx_data_02 on data(xx) parallel 8 nologging [local];

大约耗时3个小时左右。

需要注意

temp表空间原先为60g,由于一开始开16个并行,所以导致报错无法在temp扩展,临时加大temp表空间到120g,顺利建立索引。

参考

https://www.askMaclean.com/arcHives/event-10357-and-10351.html

[oracle@rh3 ~]$ oerr ora 10351
10351, 00000, "size of slots"
// *Cause:
// *Action:  sets the size of slots to use
// *Comment: a slot is a unit of I/O and this factor controls the size
// *Comment: of the IO.
alter session set events '10351 trace name context forever, level 128';
level 128 -> direct path write max block 128
I generated a new run of the big testcase with event 10357, Patch 4417285
applied, manual workarea_size_policy, sort_area_size=50000000,
db_file_multiblock_read_count=16 and event 10351 with level 128.
I tried it with disk_asynch_io=TRUE and FALSE just to be certain this is not
something related to the async.
In the trace files I see something very peculiar. The slots size is 128 as
expected and I see many writes of 128 blocks but not all of them are and they
look like the they come in clusters. A few 128 writes, then a lot smaller of
different sizes but mainly less than 16 blocks and then another cluster of
big ones and so on.
kcblcow: dba=100c91b, sz=128, blks=117, st=3, idx=14
kcblcow: dba=100c91b, sz=128, blks=117, st=3, idx=14
kcblcow: dba=100c991, sz=128, blks=1, st=3, idx=15
kcblcow: dba=100c91b, sz=128, blks=117, st=3, idx=14
kcblcow: dba=100c991, sz=128, blks=1, st=3, idx=15
kcblcow: dba=100c990, sz=128, blks=1, st=3, idx=0
kcblcow: dba=100c992, sz=128, blks=128, st=3, idx=1
kcblcow: dba=100c992, sz=128, blks=128, st=3, idx=1
kcblcow: dba=100ca12, sz=128, blks=39, st=3, idx=2
kcblcow: dba=100c992, sz=128, blks=128, st=3, idx=1
kcblcow: dba=100ca12, sz=128, blks=39, st=3, idx=2
kcblcow: dba=100ca3a, sz=128, blks=1, st=3, idx=3
kcblcow: dba=100ca12, sz=128, blks=39, st=3, idx=2
kcblcow: dba=100ca3a, sz=128, blks=1, st=3, idx=3
kcblcow: dba=100ca39, sz=128, blks=1, st=3, idx=4
but
it is possible that there are other factor out of our control that forces
Oracle to stop adding blocks to the slot and write small batches.
In conclusion, in order to have the least ammount of direct operations and
have the maximum possible read/write batches these are the parameters to set
:
alter session set events '10351 trace name context forever, level 128';
alter session set workarea_size_policy=manual;
alter session set sort_area_size=50000000;

“Oracle 41亿数据量表建立索引记录的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle 41亿数据量表建立索引记录的方法是什么

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

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

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

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

下载Word文档
猜你喜欢
  • Oracle 41亿数据量表建立索引记录的方法是什么
    本篇内容介绍了“Oracle 41亿数据量表建立索引记录的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • mysql建立索引的方法是什么
    这篇文章主要介绍了mysql建立索引的方法是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(...
    99+
    2023-06-15
  • MySQL为数据表建立索引的原则是什么
    这篇文章给大家分享的是有关MySQL为数据表建立索引的原则是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。面试题:索引是什么?索引的优点?索引的缺点?在建立索引的时候都有哪些需要考虑的因素呢为数据表建立索引的...
    99+
    2023-06-29
  • 数据库建立索引的方法
    这篇文章主要介绍数据库建立索引的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,...
    99+
    2024-04-02
  • oracle索引创建的方法是什么
    在Oracle数据库中,可以使用以下几种方法来创建索引:1. CREATE INDEX语句:使用CREATE INDEX语句可以手动...
    99+
    2023-08-28
    oracle
  • oracle查看表索引的方法是什么
    要查看表索引,可以使用Oracle数据库中的以下方法之一:1. 使用DESC命令:在SQL命令行中,输入DESC命令,后跟表名。这将...
    99+
    2023-09-13
    oracle
  • oracle表增加索引的方法是什么
    要在Oracle表中增加索引,可以使用以下方法: 1、使用CREATE INDEX语句:使用CREATE INDEX语句可以在表中创...
    99+
    2024-03-14
    oracle
  • 数据表创建索引的目的是什么
    这篇文章主要介绍了数据表创建索引的目的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、SQL创建索引的目的如下:1、通过唯一性索引(...
    99+
    2024-04-02
  • mongodb创建表和索引的方法是什么
    在 MongoDB 中,文档存储在集合(Collection)中,类似于关系数据库中的表。要创建集合和索引,可以使用以下方法:创建集...
    99+
    2023-09-11
    mongodb
  • 数据库表、索引、表空间的回收方法是什么
    本篇内容介绍了“数据库表、索引、表空间的回收方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明:...
    99+
    2024-04-02
  • mongodb亿级数据量查询的方法是什么
    为了有效地处理亿级数据量的查询,可以采取以下方法:1. 索引优化:创建适当的索引可以大大提高查询性能。在设计数据模式时,根据查询需求...
    99+
    2023-09-06
    mongodb
  • oracle查询建立临时表的方法是什么
    Oracle可以使用CREATE GLOBAL TEMPORARY TABLE语句来建立临时表。临时表的数据在会话结束时会自动被删除...
    99+
    2023-08-23
    oracle
  • oracle索引表空间清理的方法是什么
    清理Oracle索引表空间可以通过以下方法进行: 使用ALTER INDEX命令重新构建索引:使用该命令可以重新构建索引,从而释放...
    99+
    2024-03-14
    oracle
  • oracle加索引的方法是什么
    在Oracle中,可以使用以下方法来为一个表添加索引:1. 使用CREATE INDEX语句:可以通过CREATE INDEX语句手...
    99+
    2023-08-25
    oracle
  • Oracle数据库中的索引是什么
    索引是一种特殊的数据库对象,它可以加快数据库查询操作的速度。索引可以帮助数据库系统快速定位和访问表中的数据,从而提高查询效率。在Or...
    99+
    2024-03-02
    Oracle
  • postgresql索引创建的方法是什么
    在PostgreSQL中,可以使用以下方法来创建索引: 创建唯一索引: CREATE UNIQUE INDEX index_na...
    99+
    2024-04-09
    postgresql
  • Oracle 11g impdp先数据后索引导入方法是什么
    本篇内容主要讲解“Oracle 11g impdp先数据后索引导入方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle 11g impdp先数据...
    99+
    2024-04-02
  • 实现ADO.NET记录集获取记录数量的方法是什么
    本篇文章给大家分享的是有关实现ADO.NET记录集获取记录数量的方法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。VC使用ADO技术访问数据表,打开数据表后,获得了ADO...
    99+
    2023-06-17
  • oracle登录数据库的方法是什么
    在Oracle数据库中,可以使用SQLPlus或SQL Developer等工具来登录数据库。以下是使用SQLPlus登录Oracl...
    99+
    2024-03-01
    oracle 数据库
  • oracle修改表数据的方法是什么
    Oracle修改表数据的方法主要有以下几种: 使用UPDATE语句:使用UPDATE语句可以更新表中的数据。语法如下: ...
    99+
    2024-03-13
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作