十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
擦除磁盘数据操作步骤
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都酒楼设计小微创业公司专业提供企业网站制作营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
1、下载免费的分区助手,安装并运行。在主界面中的列表框中选择您想擦除的硬盘并右击鼠标,在弹出来的菜单中选择“擦除磁盘”选项。
2、然后将打开如下图2所有示的窗口,您可以指定擦除磁盘的次数,最多为100次。擦除的次数越多在执行时所花的时间也将越多。
3、并点击“确定”返回到分区助手主界面。然后您将看到下图3所示状态。磁盘1上的所有分区被删除了,同时在等待执行的操作列表中多了一项“擦除磁盘1所有数据”的操作。
请点击工具栏上的“提交”按钮,并在弹出的对话框中点击“执行”来执行真正的彻底擦除磁盘数据这个操作。另外,分区助手不仅可以彻底删除磁盘上的所有数据,同时也可以彻底删除分区(如D盘,E盘)的所有数据,其操作方式与擦除磁盘操作相似。
ALTER
TABLE
DROP
PARTITION
用于删除table中某个PARTITION和其中的数据,主要是用于历史数据的删除。如果还想保留数据,就需要合并到另一个partition中。
删除该partition之后,如果再insert该partition范围内的值,要存放在更高的partition中。如果你删除了最大的partition,就会出错。
删除table
partition的同时,删除相应的local
index。即使该index是IU状态。
如果table上有global
index,且该partition不空,drop
partition会使所有的global
index
为IU状态。如果不想REBUIL
INDEX,可以用SQL语句手工删除数据,然后再DROP
PARTITION.
例子:
ALTR
ATBEL
sales
DROP
PARTITION
dec96;
到底是DROP
PARTITION或者是DELETE?
如果GLOBAL
INDEX是最重要的,就应该先DELETE
数据再DROP
PARTITION。
在下面情况下,手工删除数据的代价比DROP
PARTITION要小
-
如果要删除的数据只占整个TABLE的小部分
-
在TABLE中有很多的GLOBAL
INDEX。
在下面情况下,手工删除数据的代价比DROP
PARTITION要大
-
如果要删除的数据占整个TABLE的绝大部分
-
在TABLE中没有很多的GLOBAL
INDEX。
如果在TABLE是父TABLE,有被引用的约束,且PARTITION不空,DROP
PARTITION时出错。
如果要删除有数据的PARTITION,应该先删除引用约束。或者先DELETE,然后再DROP
PARTITION。
如果TABLE只有一个PARTITON,不能DROP
PARTITION,只能DROP
TABLE。
oracle是没有直接删除全部分区或多个分区的语句,但是可以变通方法
方法一:先备份表,再删除表、重新创建表;
方法二:拼接sql语句,比如
SELECT 'ALTER TABLE LOG_INFO DROP PARTITION' || PARTITION_NAME || ';'
FROM USER_TAB_PARTITIONS
WHERE TABLE_NAME = 'LOG_INFO';
可以列出删除所有分区的语句,全部执行即可。
一.表分区策略
1.识别大表
采用ANALYZE TABLE语句进行分析,然后查询数据字典获得相应的数据量。
2.大表如何分区
可根据月份,季度以及年份等进行分区;
3.分区的表空间规划
要对每个表空间的大小进行估计
二.创建表分区
a.创建范围分区的关键字是'RANGE'
1.范围分区
create table ware_retail_part --创建一个描述商品零售的数据表
(
id integer primary key,--销售编号
retail_date date,--销售日期
ware_name varchar2(50)--商品名称
)
partition by range(retail_date)
(
--2011年第一个季度为part_01分区
partition par_01 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace TEMP01,
--2011年第二个季度为part_02分区
partition par_02 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace TEMP01,
--2011年第三个季度为part_03分区
partition par_03 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace TEMP01,
--2011年第四个季度为part_04分区
partition par_04 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace TEMP01
);
2.创建散列分区
3.组合分区:
4.interval 分区
三.创建索引分区
索引分区分为本地索引分区和全局索引分区,全局索引不反应基础表的结构,要分区只能进行范围分区。
创建索引分区要参照表分区
四.分区技术简介
优点:
1.减少维护工作量
2.增强数据的可用性
3.均衡I/O,提升性能
4.提高查询速度
5.分区对用户保持透明,用户感觉不到分区的存在。
五,管理表分区
1.添加表分区
ALTER TABLE...ALTER PARATITION
2.合并表分区
3.删除分区
ALTER TABLE...DROP PARTITION
删除分区时,里面的数据也会被删除。
-创建表和分区
create table sales--创建一个销售记录表
(
id number primary key,--记录编号
goodsname varchar2(10),--商品名
saledate date--销售日期
)
partition by range(saledate)--按照日期分区
(
--第一季度数据
partition part_sea1 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace tbsp_1,
--第二季度数据
partition part_sea2 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace tbsp_2,
--第三季度数据
partition part_sea3 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace tbsp_1,
--第四季度数据
partition part_sea4 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace tbsp_2
);
--创建局部索引
create index index_3_4 on sales(saledate)
local(
partition part_seal tablespace tbsp_1,
partition part_sea2 tablespace tbsp_2,
partition part_sea3 tablespace tbsp_1,
partition part_sea4 tablespace tbsp_2
);
--并入分区
alter table sales merge partitions part_sea3,part_sea4 into partition part_sea4;
--重建局部索引
alter table sales modify partition part_sea4 rebuild unusable local indexes;
六.管理索引分区
删除索引:DROP PARTITION
重建分区:REBUILT PARTITION
更名索引分区:RENAME PARTITION
分割索引分区:SPLIT PARTITION
1.高效的分区消除
分区表存在的最大意义在于,可以有效地做到分区消除
分区表其实是将一个大对象分成了多个小对象
同样的语句查询有相同记录的表,分区表的查询代价仅为111,逻辑读仅为566,而普通表的代价却为1298,逻辑读为5990,性能方面有着天壤之别。差别如此之大,应该是和分区表查询只遍历了13个分区中的一个有关。在分区表查询的执行计划中p_start和p_stop都标记上9,表示只遍历了第9个分区。这样避开了对其余12个分区的查询,就是分区消除
测试针对普通表的增加了 area_code 条件的相同 SQL 语句:
组合分区导致范围定位得更小了,只产生了60个逻辑读,比之前的566个逻辑读还要少。至于普通表的查询,因为始终是全表扫描,所以逻辑读依然和之前差不多,达到5931个。
组合分区虽然只有60个逻辑读,比之前范围分区的566个要少得多,但是代价却差不多,甚至还略大于之前的,因为分区数过多,调用有开销。在试验中,表的总记录数不过10万,全表扫描开销都不是太大,这时Oracle内部调用的开销影响就相对较大。如果表是一张超级大表,比如有上亿条记录,那这些开销相比而言就可以忽略不计了,
分区表应用在大表上更合适,至少要大于100万条记录的表方可考虑。