查询分区:Select *From user_extents WHERE partition_name='分区名';

1)创建表空间

create tablespace HRPM0

datafile '/oradata/misdb/HRPM0.DBF' size 5m autoextend on next 10m maxsize unlimited

2)删除表空间(同时把数据文件也删除)

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

如果不想删除数据文件:

Drop tablespace tablespace_name;

3) 修改表空间大小

alter database datafile '/path/NADDate05.dbf' resize 100M

4)添加数据文件(在建立表空间时,若是约束了表空间的大小,那么一段时间后,这个表空间就会被装满,无法再添加其他对象。则需要给表空间添加数据文件):

Alter tablespace tablespace_name add datafile’ '/path/NADDate06.dbf’ size 100M;

4) 备注:

4.1).--.禁止undo tablespace自动增长

alter database datafile 'full_path\undotbs01.dbf' autoextend off;

4.2).-- 创建一个新的小空间的undo tablespace

create undo tablespace undotBS2 datafile 'full_path\UNDOTBS02.DBF' size 100m;

4.3).-- 设置新的表空间为系统undo_tablespace

alter system set undo_tablespace=undotBS2;

4.4).-- Drop 旧的表空间

drop tablespace undotbs1 including contents;

4.5).--查看所有表空间的情况

select * from dba_tablespaces

5)查到一个最好用的表:dict

5.1)select *from dict where table_name like '%PART%'

5.2)ALL_TAB_PARTITIONS:可以查出表所对应的分区内容;

5.3)dab_tab_partitons :与上2);

5.4)dba_ind_partitons:查询分区的索引;

5.5)子分区也是一样的(dba_tab_subpartitons,dba_ind_partitons)

一、使用分区的优点:

1、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;

2、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;

3、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;

4、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。

二、Oracle数据库提供对表或索引的分区方法有几种(收集到四种):

1、范围分区

2、列表分区

3、Hash分区(散列分区)

4、复合分区

三、详描述分区实例:

1)下面将以实例的方式分别对这三种分区方法来说明分区表的使用。为了测试方便,我们先建三个表空间。

create tablespace dinya_space01 datafile 'C:\表空间\dinya01.dbf' size 5M; create tablespace dinya_space02 datafile 'C:\表空间\dinya02.dbf'SIZE 5M; create tablespace dinya_space03 datafile 'C:\表空间\dinya03.dbf' SIZE 5M;

select * from user_tablespaces

                   <表空间->三个>

1.1)范围分区

范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。如根据序号分区,根据业务记录的创建日期进行分区等。

需求描述:有一个物料交易表,表名:material_transactions。该表将来可能有千万级的数据记录数。要求在建该表的时候使用分区表。这时候我们可以使用序号分区三个区,每个区中预计存储三千万的数据,也可以使用日期分区,如每五年的数据存储在一个分区上。

根据交易记录的序号分区建表:----为了测试需要做以下修改;

create table dinya_test

(

transaction_id number primary key,

item_id number(8) not null,

item_description varchar2(300),

transaction_date date not null

)

partition by range (transaction_id)

(

partition part_01 values less than(2) tablespace dinya_space01,-----2条以下的交易在此分区上:part_01

partition part_02 values less than(3) tablespace dinya_space02,-----等于+大于2而小于3的交易在此分区:part_02

partition part_03 values less than(maxvalue) tablespace dinya_space03----大于3的交易在此分区:part_03

-----------------以上在pl/sql测试成功;

---------------- 以下没有在pl/sql测试!

根据交易日期分区建表:

SQL> create table dinya_test

(

transaction_id number primary key,

item_id number(8) not null,

item_description varchar2(300),

transaction_date date not null

)

partition by range (transaction_date)

(

partition part_01 values less than(to_date('2006-01-01','yyyy-mm-dd')) tablespace dinya_space01,

partition part_02 values less than(to_date('2010-01-01','yyyy-mm-dd')) tablespace dinya_space02,

partition part_03 values less than(maxvalue) tablespace dinya_space03

);

这样我们就分别建了以交易序号和交易日期来分区的分区表。每次插入数据的时候,系统将根据指定的字段的值来自动将记录存储到制定的分区(表空间)中。

当然,我们还可以根据需求,使用两个字段的范围分布来分区,如partition by range ( transaction_id ,transaction_date),分区条件中的值也做相应的改变,请读者自行测试。

---------------------------------以上没有在pl/sql测试!

1.2) 范围分区创建成功之后的相关操作测试;

a)向表添加测试数据:

insert into dinya_test values(1,12,'BOOKS',sysdate);

insert into dinya_test values(2,12, 'BOOKS',sysdate+30);

insert into dinya_test values(3,12, 'BOOKS',to_date('2006-05-30','yyyy-mm-dd'));

insert into dinya_test values(4,12, 'BOOKS',to_date('2007-06-23','yyyy-mm-dd'));

insert into dinya_test values(5,12, 'BOOKS',to_date('2011-02-26','yyyy-mm-dd'));

insert into dinya_test values(6,12, 'BOOKS',to_date('2011-04-30','yyyy-mm-dd'));

b)查询

b.1)如果查询全表数据

select * from dinya_test;如下图:

< 全表数据>

select * from dinya_test partition(part_01);如下图:

<Part_01分区的数据>

select * from dinya_test partition(part_02);如下图:

<Part_02分区的数据>

select * from dinya_test partition(part_03);如下图:

<Part_03分区的数据>

update dinya_test partition(part_01) t set t.item_description='DESK' where t.transaction_id=1;

select * from dinya_test partition(part_01);BOOKS->DESK(发生变化)

                  

select * from dinya_test(此结果就不用查看了,肯定变了);

---删除part_03分区中transaction_id=4的记录:

delete from dinya_test partition(part_03) t where t.transaction_id=4;

select * from dinya_test partition(part_03)

             少了transaction_id=4的记录(与上图对比)

c)索引的创建:

   c.1)局部索引的创建:

create index dinya_idx_t on dinya_test(item_id)

local

(

partition idx_1 tablespace dinya_space01,---分区名为:idx_1

partition idx_2 tablespace dinya_space02, ---分区名为:idx_2

partition idx_3 tablespace dinya_space03---分区名为:idx_3

);  ---pl/sql测试成功

注:

select *from ALL_TAB_PARTITIONS where table_name ='DINYA_TEST'

    select *From dba_ind_partitions where partition_name='IDX_1'

   c.2)全局索引的创建:

全局索引建立时global 子句允许指定索引的范围值,这个范围值为索引字段的范围值:

create index dinya_idx_t on dinya_test(item_id)

global partition by range(item_id)

(

partition idx_1 values less than (1000) tablespace dinya_space01,

partition idx_2 values less than (10000) tablespace dinya_space02,

partition idx_3 values less than (maxvalue) tablespace dinya_space03

);----PL/SQL末测试[参照以上local];

整个表创建索引:

   Create index dinya_idx_t on dinya_test(item_id);

备注: select *from all_indexes(dba_indexes、all_ind_columns 、user_ind_columns 、 dba_ind_columns)

1.3) Hash分区(散列分区)

——————————以下没有在机器上测试

散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。如将物料交易表的数据根据交易ID散列地存放在指定的三个表空间中:

create table dinya_test

(

transaction_id number primary key,

item_id number(8) not null,

item_description varchar2(300),

transaction_date date

)

partition by hash(transaction_id)

(

partition part_01 tablespace dinya_space01,

partition part_02 tablespace dinya_space02,

partition part_03 tablespace dinya_space03

);

建表成功,此时插入数据,系统将按transaction_id将记录散列地插入三个分区中,这里也就是三个不同的表空间中。

——————————以上没有在机器上测试;

1.4) 列表分区:该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列表分区。

示例1:

CREATE TABLE PROBLEM_TICKETS

(

PROBLEM_ID NUMBER(7) NOT NULL PRIMARY KEY,

DESCRIPTION VARCHAR2(2000),

CUSTOMER_ID NUMBER(7) NOT NULL,

DATE_ENTERED DATE NOT NULL,

STATUS VARCHAR2(20)

)

PARTITION BY LIST (STATUS)

(

PARTITION PROB_ACTIVE VALUES ('ACTIVE') TABLESPACE PROB_TS01,

PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02

)

备注:active和inactive是列status的值!谨记与range和hash分区的区别;

1.4.1)测试如下:

insert into PROBLEM_TICKETS values(1,'BOOKS',1,sysdate,'ACTIVE');

insert into PROBLEM_TICKETS values(2,'son',2,sysdate+30,'INACTIVE');

insert into PROBLEM_TICKETS values(3,'son',3,to_date('2006-05-30','yyyy-mm-dd'),'INACTIVE');

insert into PROBLEM_TICKETS values(4,'BOOKS',4,to_date('2007-06-23','yyyy-mm-dd'),'INACTIVE');

insert into PROBLEM_TICKETS values(5,'old',5,to_date('2011-02-26','yyyy-mm-dd'),'ACTIVE');

insert intoPROBLEM_TICKETSvalues(6,'test',6,to_date('2011-04-30','yyyy-mm-dd'),'INACTIVE');

select * from PROBLEM_TICKETS

<查询全表>

1.4.2)

select * from PROBLEM_TICKETS partition(PROB_ACTIVE)

1.4.2)

select * from PROBLEM_TICKETS partition(PROB_INACTIVE)

在测试中遇到这样的情况。如果表创建了分区,如果要删除数据文件(表空间文件),则要先删除分区,然后才能删除数据文件(但是在删除数据文件时,必须要保留一个分区才能最终删除数据文件>表空间文件,)

当然,也可以直接就删除表也行,刚所有的全删除,但是表空间文件还在!

1.5) 复合分区

有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法,如将物料交易的记录按时间分区,然后每个分区中的数据分三个子分区,将数据散列地存储在三个指定的表空间中:

create table dinya_test

(

transaction_id number primary key,

item_id number(8) not null,

    item_description varchar2(300),

     transaction_date date

)

partition by range(transaction_date)subpartition by hash(transaction_id)

subpartitions 3 store in (dinya_space07,dinya_space08,dinya_space09)

(

partition part_07 values less than(to_date('2006-01-01','yyyy-mm-dd')),

partition part_08 values less than(to_date('2010-01-01','yyyy-mm-dd')),

partition part_09 values less than(maxvalue)

);

---测试如下:

select *From user_tab_partitions where table_name=upper('dinya_test')

selec *From user_tab_subpartitions where table_name=upper('dinya_test')

《图1》

插入如下数据:

insert into dinya_test values(1,12,'BOOKS',sysdate);

insert into dinya_test values(2,12, 'BOOKS',sysdate+30);

insert into dinya_test values(3,12, 'BOOKS',to_date('2006-05-30','yyyy-mm-dd'));

insert into dinya_test values(7,12, 'BOOKS',to_date('2005-05-30','yyyy-mm-dd'));

insert into dinya_test values(4,12, 'BOOKS',to_date('2007-06-23','yyyy-mm-dd'));

insert into dinya_test values(5,12, 'BOOKS',to_date('2011-02-26','yyyy-mm-dd'));

insert into dinya_test values(6,12, 'BOOKS',to_date('2011-04-30','yyyy-mm-dd'));

select *From dinya_test:如下图

select *From dinya_test partition(part_07)如下图:

select *From dinya_test partition(part_09)

参照下图,按所显的子分区名,看能否查出数据:

select*Fromuser_tab_subpartitions where table_name=upper('dinya_test')

select *From dinya_test subpartition(SYS_SUBP62):如下图:

其它的查询一样。-----测试成功;

备注:该例中,先是根据交易日期进行范围分区,然后根据交易的ID将记录散列地存储在三个表空间中。

 

1.6)复合范围列表分区:这种分区是基于范围分区和列表分区,表首先按某列进行范围分区,然后再按某列进行列表分区,分区之中的分区被称为子分区。

示例1:

Create table sales

(

Product_id varchar2(5),

Sales_date date,

Sales_cost number(10),

Status varchar2(20)

)

Partition by range(Sales_cost)

Subpartition by list(status)

(

Partition p1 values less than (1) tablespace dinya_space01

(

Subpartition p1sub1 values('ACTIVE') tablespace   dinya_space03,

Subpartition p1sub2 values('INACTIVE') tablespace dinya_space04

),

Partition p2 values less than (3) tablespace dinya_space02

(

Subpartition p1sub3 values('ACTIVE') tablespace    dinya_space05,

Subpartition p1sub4 values('INACTIVE') tablespace dinya_space06

)

)测试如下:

insert into sales values(1,sysdate,0.1,'ACTIVE');

insert into sales values(2,sysdate+30,1,'INACTIVE');

insert into sales

values(3,to_date('2006-05-30','yyyy-mm-dd'),2,'INACTIVE');

select *From sales:

Select *from sales partition(p2)

SELECT * FROM SALES SUBPARTITION(p1sub4)

SELECT * FROM SALES SUBPARTITION(p1sub3)

没有数据!!

select *From dba_tab_subpartitions where table_name='SALES'

有关表分区的一些维护性操作:

一、添加分区

以下代码给SALES表添加了一个P3分区

ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));

注意:以上添加的分区界限应该高于最后一个分区界限。

以下代码给SALES表的P3分区添加了一个P3SUB1子分区

ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');

二、删除分区

以下代码删除了P3表分区:

ALTER TABLE SALES DROP PARTITION P3;

在测试中遇到这样的情况。如果表创建了分区,如果要删除数据文件(表空间文件),则要先删除分区,然后才能删除数据文件(但是在删除数据文件时,必须要保留一个分区才能最终删除数据文件>表空间文件,)

当然,也可以直接就删除表也行,刚所有的全删除,但是表空间文件还在!

在以下代码删除了P4SUB1子分区:

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

注意:如果删除的分区是表中唯一的分区,那么此分区将不能被删除,要想删除此分区,必须删除表。

三、截断分区

截断某个分区是指删除某个分区中的数据,并不会删除分区,也不会删除其它分区中的数据。当表中即使只有一个分区时,也可以截断该分区。通过以下代码截断分区:

ALTER TABLE SALES TRUNCATE PARTITION P2;

通过以下代码截断子分区:

ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;

四、合并分区

合并分区是将相邻的分区合并成一个分区,结果分区将采用较高分区的界限,值得注意的是,不能将分区合并到界限较低的分区。以下代码实现了P1 P2分区的合并:

ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2;

五、拆分分区

拆分分区将一个分区拆分两个新分区,拆分后原来分区不再存在。注意不能对HASH类型的分区进行拆分。

ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE('2003-02-01','YYYY-MM-DD'))

INTO (PARTITION P21,PARTITION P22);

六、接合分区(coalesca)

结合分区是将散列分区中的数据接合到其它分区中,当散列分区中的数据比较大时,可以增加散列分区,然后进行接合,值得注意的是,接合分区只能用于散列分区中。通过以下代码进行接合分区:

ALTER TABLE SALES COALESCA PARTITION;

七、重命名表分区

以下代码将P21更改为P2

ALTER TABLE SALES RENAME PARTITION P21 TO P2;

九、跨分区查询

select sum( *) from (

(select count(*) cn from t_table_SS PARTITION (P200709_1)

union all

select count(*) cn from t_table_SS PARTITION (P200709_2));

十、查询表上有多少分区

SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME='tableName'

--显示数据库所有分区表的信息:

select * from DBA_PART_TABLES where table_name=upper('dinya_test')

--显示当前用户可访问的所有分区表信息:

select * from ALL_PART_TABLES

同上图

--显示当前用户所有分区表的信息:

select * from USER_PART_TABLES

同上图

--显示表分区信息 显示数据库所有分区表的详细分区信息:

select * from DBA_TAB_PARTITIONS

--显示当前用户可访问的所有分区表的详细分区信息:

select * from ALL_TAB_PARTITIONS

--显示当前用户所有分区表的详细分区信息:

select * from USER_TAB_PARTITIONS

--显示子分区信息 显示数据库所有组合分区表的子分区信息:

select * from DBA_TAB_SUBPARTITIONS

--显示当前用户可访问的所有组合分区表的子分区信息:

select * from ALL_TAB_SUBPARTITIONS

--显示当前用户所有组合分区表的子分区信息:

select * from USER_TAB_SUBPARTITIONS

--显示分区列 显示数据库所有分区表的分区列信息:

select * from DBA_PART_KEY_COLUMNS

--显示当前用户可访问的所有分区表的分区列信息:

select * from ALL_PART_KEY_COLUMNS

--显示当前用户所有分区表的分区列信息:

select * from USER_PART_KEY_COLUMNS

--显示子分区列 显示数据库所有分区表的子分区列信息:

select * from DBA_SUBPART_KEY_COLUMNS

--显示当前用户可访问的所有分区表的子分区列信息:

select * from ALL_SUBPART_KEY_COLUMNS

--显示当前用户所有分区表的子分区列信息:

select * from USER_SUBPART_KEY_COLUMNS

--怎样查询出oracle数据库中所有的的分区表

select * from user_tables a where a.partitioned='YES'

--删除一个表的数据是

truncate table table_name;

--删除分区表一个分区的数据是

alter table table_name truncate partition p5;

注:分区根据具体情况选择。

表分区有以下优点:

1、数据查询:数据被存储到多个文件上,减少了I/O负载,查询速度提高。

2、数据修剪:保存历史数据非常的理想。

3、备份:将大表的数据分成多个文件,方便备份和恢复。

4、并行性:可以同时向表中进行DML操作,并行性性能提高。

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

索引:

1、一般索引:

create index index_name on table(col_name);

2、Oracle 分区索引详解

语法:Table Index

CREATE [UNIQUE|BITMAP] INDEX [schema.]index_name

ON [schema.]table_name [tbl_alias]

(col [ASC | DESC]) index_clause index_attribs

index_clauses:

分以下两种情况

1. Local Index

就是索引信息的存放位置依赖于父表的Partition信息,换句话说创建这样的索引必须保证父表是Partition

1.1 索引信息存放在父表的分区所在的表空间。但是仅可以创建在父表为HashTable或者composite分区表的。

LOCAL STORE IN (tablespace)

1.2 仅可以创建在父表为HashTable或者composite分区表的。并且指定的分区数目要与父表的分区数目要一致

LOCAL STORE IN (tablespace) (PARTITION [partition [LOGGING|NOLOGGING] [TABLESPACE {tablespace|DEFAULT}] [PCTFREE int] [PCTUSED int] [INITRANS int] [MAXTRANS int] [STORAGE storage_clause] [STORE IN {tablespace_name|DEFAULT] [SUBPARTITION [subpartition [TABLESPACE tablespace]]]])

1.3 索引信息存放在父表的分区所在的表空间,这种语法最简单,也是最常用的分区索引创建方式。

Local

1.4 并且指定的Partition 数目要与父表的Partition要一致

LOCAL (PARTITION [partition

[LOGGING|NOLOGGING]

[TABLESPACE {tablespace|DEFAULT}]

[PCTFREE int]

[PCTUSED int]

[INITRANS int]

[MAXTRANS int]

[STORAGE storage_clause]

[STORE IN {tablespace_name|DEFAULT]

[SUBPARTITION [subpartition [TABLESPACE tablespace]]]])

Global Index

索引信息的存放位置与父表的Partition信息完全不相干。甚至父表是不是分区表都无所谓的。语法如下:

GLOBAL PARTITION BY RANGE (col_list)

( PARTITION partition VALUES LESS THAN (value_list)

[LOGGING|NOLOGGING]

[TABLESPACE {tablespace|DEFAULT}]

[PCTFREE int]

[PCTUSED int]

[INITRANS int]

[MAXTRANS int]

[STORAGE storage_clause] )

但是在这种情况下,如果父表是分区表,要删除父表的一个分区都必须要更新Global Index ,否则索引信息不正确

ALTER TABLE TableName DROP PARTITION PartitionName Update Global Indexes

--查询索引

select object_name,object_type,tablespace_name,sum(value)

from v$segment_statistics

where statistic_name IN ('physical reads','physical write','logical reads')and object_type='INDEX'

group by object_name,object_type,tablespace_name

order by 4 desc

Oracle中分区表的使用的更多相关文章

  1. oracle中的分区表

    oracle中的分区表在系统中使用的频率不小,在一些数据量大的系统中更是频繁出现. 提到分区表,首先就要理解下什么是分区.其实所谓的分区简单来说就是分区域,分区表就是将一张表分区域存放. 那么分区域中 ...

  2. oracle中imp命令详解 .

    转自http://www.cnblogs.com/songdavid/articles/2435439.html oracle中imp命令详解 Oracle的导入实用程序(Import utility ...

  3. oracle中imp命令具体解释

    oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...

  4. ORACLE中修改表的Schema的总结

    前阵子遇到一个案例,需要将数据库中的几个表从USER A 移动到USER B下面,在ORACLE中,这个叫做更改表的所有者或者修改表的Schema.其实遇到这种案例,有好几种解决方法.下面我们通过实验 ...

  5. ORACLE中dba,user,v$等开头的常用表和视图

    一.Oracle表明细及说明1.dba_开头表    dba_users           数据库用户信息    dba_segments    表段信息    dba_extents        ...

  6. 详解Oracle partition分区表

    随着表中行数的增多,管理和性能性能影响也将随之增加.备份将要花费更多时间,恢复也将 要花费更说的时间,对整个数据表的查询也将花费更多时间.通过把一个表中的行分为几个部分,可以减少大型表的管理和性能问题 ...

  7. Oracle中B-TREE索引的深入理解(转载)

    索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样.在理解索引时,可以想象一本书, ...

  8. 转-oracle中比较两表表结构差异和数据差异的方法

    oracle中比较两表表结构差异和数据差异的方法 原作者:li2008xue2008ling  出处:http://blog.csdn.net       在工作中需要完成这么一个需求:比较两个表的表 ...

  9. 简单了解,使用oracle中的索引,表分区

    索引的分类 如下: 物理分类 逻辑分类 分区或非分区索引 单列或组合索引 B树索引(标准索引) 唯一或非唯一索引 正常或反向键索引 基于函数索引 位图索引   B树索引 b树索引通常也称为标准索引,索 ...

随机推荐

  1. Visual Studio 插件AnkhSvn 更改Svn URL和登录信息

    AnkhSvn配置文件:%AppData%\Subversion\auth\ 删除这个文件夹中所有内容 然后连接,重新设置相关信息 设置静态地址 设置路由器 以TP-LINK路由器为例,其他路由器类似 ...

  2. JSP EL表达式(转)

    一.EL简介 1.语法结构     ${expression}2.[]与.运算符     EL 提供.和[]两种运算符来存取数据.    当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字 ...

  3. 基于WebDriver&TestNG 实现自己的Annotation @TakeScreenshotOnFailure

    相信用过Selenium WebDriver 的朋友都应该知道如何使用WebDriver API实现Take Screenshot的功能. 在这篇文章里,我主要来介绍对failed tests实现 t ...

  4. 如何解決 Homebrew Update 失敗?

    相信許多用 MAC 系統的程式設計師.工程師們都有用 Homebrew 這個超好用的 Open Source 套件管理程式吧? 如果沒有的話,你可以透過以下的指令安裝: ruby -e "$ ...

  5. NSRunLoop详解

    1.NSRunLoop是IOS消息机制的处理模式 NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的时候使当前NSRunLoop控制的线程工作,没有事情做让当前NS ...

  6. Magic xpa 2.5发布 Magic xpa 2.5 Release Notes

    Magic xpa 2.5發佈 Magic xpa 2.5 Release Notes Magic xpa 2.5 Release NotesNew Features, Feature Enhance ...

  7. SOA Integration Repository Error:Service Provider Access is not available.

    在Oracle EBS Integration Repository中,打开一个Webservice,报了一个警告. 英文: Warning Service Provider Access is no ...

  8. 六十三、android pad

    参照连接:http://blog.csdn.net/guolin_blog/article/details/8881711 http://www.xue5.com/Mobile/Android/708 ...

  9. LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题. 在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新 ...

  10. 【转】Java关键字final、static使用总结

    转自:http://lavasoft.blog.51cto.com/62575/18771/   Java关键字final.static使用总结   一.final        根据程序上下文环境, ...