oracle 分区查询 存储 oracle查询分区表的数据的时候默认查询哪个分区

seosqwseo3个月前 (09-13)测评日记28

一、oracle数据库分区有几种

Oracle数据库分区主要分为四种类型,包括范围分区(Range Partitioning)、列表分区(List Partitioning)、哈希分区(Hash Partitioning)和复合分区(Composite Partitioning)。

1.范围分区(Range Partitioning):

范围分区是常用的一种分区方式。它根据分区键的值的范围将数据分配到不同的分区中。每个分区都包含了一个连续的范围。比如,我们可以根据日期字段进行范围分区,每个分区存储一个月的数据。假设有一个表记录了员工的入职日期,我们可以按照入职日期进行范围分区,比如分区为“2000年1月1日”到“2010年12月31日”,“2011年1月1日”到“2020年12月31日”,以此类推。这样,我们可以方便地根据日期范围查询特定分区的数据,提高了查询效率。

2.列表分区(List Partitioning):

列表分区是另一种常用的分区方式。它明确指定了每个分区中应包含的键的值。比如,对于一个存储了各个城市天气的表,我们可以按照城市名称进行列表分区,每个分区包含了一些特定的城市。比如,一个分区包含了北京、上海、广州等大城市,另一个分区包含了深圳、杭州、成都等城市。这样,我们可以根据城市名直接查询特定的分区,提高了查询效率。

3.哈希分区(Hash Partitioning):

哈希分区是通过哈希算法将数据均匀分布到不同的分区中。Oracle数据库使用了基于分区键的哈希值来决定数据应该放在哪个分区。这种方式保证了数据在各个分区中的均匀分布,对于处理大数据量的表非常有效。

4.复合分区(Composite Partitioning):

复合分区是Oracle数据库中复杂的分区方式。它允许你在同一时间使用两种或更多的分区方法。比如,你可以首先使用范围分区,然后在每个范围分区中再使用哈希分区。这种方式提供了极高的灵活性,使得你可以更精细地控制数据的分布和访问。

以上四种就是Oracle数据库的主要分区方式。它们都有各自的适用场景,选择哪种分区方式取决于你的具体需求和数据特性。正确的分区方式可以提高数据查询效率,提升系统性能,是优化Oracle数据库的重要手段。

二、oracle 在删除表,表空间,用户时 如何释放磁盘空间

一、drop表

执行drop table xx语句

drop后的表被放在回收站(user_recycle**n)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。

通过查询回收站user_recycle**n获取被删除的表信息,然后使用语句

flashback table<user_recycle**n.object_name or user_recycle**n.original_name> to before drop [rename to<new_table_name>];

将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。

若要彻底删除表,则使用语句:drop table<table_name> purge;

清除回收站里的信息

清除指定表:purge table<table_name>;

清除当前用户的回收站:purge recycle**n;

清除所有用户的回收站:purge dba_recycle**n;

不放入回收站,直接删除则是:drop table xx purge;

举例如下:

===============================================================================

SQL> select* from test1;

A B C

--------------

11 5

11 10

2 rows selected

SQL> create table test2 as select* from test1;

Table created

SQL> select* from test2;

A B C

--------------

11 5

11 10

2 rows selected

SQL> drop table test2;

Table dropped

SQL> select object_name, original_name, operation, type from user_recycle**n;

OBJECT_NAME ORIGINAL_NAME OPERATION TYPE

------------------------------------------------------------------------------------------------

BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE

SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名

Done

SQL> select* from test3;

A B C

--------------

11 5

11 10

2 rows selected

SQL> select* from test2

ORA-00942:表或视图不存在

--彻底删除表

SQL> drop table test3 purge;

Table dropped

二、清除表中的数据

truncate*作同没有where条件的delete*作十分相似,只是把表里的信息全部删除,但是表依然存在。

例如:truncate table XX

Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。

truncate table后,有可能表空间仍没有释放,可以使用如下语句:

alter table表名称 deallocate UNUSED KEEP 0;

注意如果不加KEEP 0的话,表空间是不会释放的。

例如:

alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0;

或者:

TRUNCATE TABLE(schema)table_name DROP(REUSE) STORAGE才能释放表空间。

例如: truncate table test1 DROP STORAGE;

三、查询分区表存在哪些分区:

查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:

select'alter table'||t.table_name||' truncate partition'|| t.partition_name from USER_TAB_PARTITIONS t where t.table_name like'F_%'

清除指定某个分区表的分区数据:

alter table表名称 truncate partition分区名称;

四、清除分区表占用的空间:

alter table表名称 DROP partition分区名称;

例如:

alter table F_HOUR_TD_NET_MPVOICE DROP partition P_09121913;

五、查询表空间信息

可以利用如下语句查询各表在存储空间的使用分情况:

SELECT TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999') CNT_MB FROM DBA_EXTENTS WHERE OWNER='&OWNER' AND SEGMENT_NAME='&TABLE_NAME' AND SEGMENT_TYPE LIKE'TABLE%' GROUP BY TABLESPACE_NAME;

可以使用如下语句,查询存储空间情况:

Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name

六、查询用户下的表

如果你的用户权限不是DBA:

那你用

select* from user_tables;

可以查询到当前用户所拥有的表。

如果是DBA用户:

select* from dba_tables;

三、oracle中分区查询时,怎样一次查询多个分区

CREATETABLECUSTOMER

(

CUSTOMER_IDNUMBERNOTNULLPRIMARYKEY,

FIRST_NAMEVARCHAR2(30)NOTNULL,

LAST_NAMEVARCHAR2(30)NOTNULL,

PHONEVARCHAR2(15)NOTNULL,

EMAILVARCHAR2(80),

STATUSCHAR(1)

)

PARTITIONBYRANGE(CUSTOMER_ID)

(

PARTITIONCUS_PART1VALUESLESSTHAN(100000)TABLESPACECUS_TS01,

PARTITIONCUS_PART2VALUESLESSTHAN(200000)TABLESPACECUS_TS02

)

具体如下:

1、简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。

2、介绍

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

3、支持平台

在2001年发布的Oracle9i之前,甲骨文公司把他们的数据库产品广泛的移植到了不同的平台上。近期,甲骨文公司巩固了一小部分的*作系统平台。

四、oracle查询分区表的数据的时候默认查询哪个分区

oracle查询分区表的数据的时候默认查询B分区。oracle中是根据分区键决定的,分区键有可能是通过某一个函数算出来的。Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护*作的性能大大提高。

相关文章

小米(MI)电视好用吗

小米(MI)电视好用吗

很多小伙伴在关注小米(MI)电视怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

Vidda海信电视75V1F-S好不好

Vidda海信电视75V1F-S好不好

很多小伙伴在关注Vidda海信电视75V1F-S怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧...

Apple苹果耳机有线原装线控手机耳机13/14耳塞入耳式XR有线耳机耳麦iPhone12ProMax/11/SE/8p/earpods质量好吗

Apple苹果耳机有线原装线控手机耳机13/14耳塞入耳式XR有线耳机耳麦iPhone12ProMax/11/SE/8p/earpods质量好吗

很多小伙伴在关注Apple苹果耳机有线原装线控手机耳机13/14耳塞入耳式XR有线耳机耳麦iPhone12ProMax/11/SE/8p/earpods怎么样?质量好不好?...

小白D1接入米家APP智能可视门铃无线电子猫眼1080P高清摄像头家用监控器持久续航手机远程查看怎么样?质量测评好不好用?

小白D1接入米家APP智能可视门铃无线电子猫眼1080P高清摄像头家用监控器持久续航手机远程查看怎么样?质量测评好不好用?

很多小伙伴在关注小白D1接入米家APP智能可视门铃无线电子猫眼1080P高清摄像头家用监控器持久续航手机远程查看怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用...

绿联(UGREEN)USB3.0高速读卡器多功能SD/TF读卡器多合一使用反馈分享

绿联(UGREEN)USB3.0高速读卡器多功能SD/TF读卡器多合一使用反馈分享

很多小伙伴在关注绿联(UGREEN)USB3.0高速读卡器多功能SD/TF读卡器多合一怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大...

小度智能屏X8升级版测评分享

小度智能屏X8升级版测评分享

很多小伙伴在关注小度智能屏X8升级版怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...