资源描述
Oracle RDBMS存储与表设计赵元杰Z2007年8月7/13/20221内容提要7/13/20222Oracle 数据库-表空间-对象TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks7/13/20223Oracle 表空间(Tablespaces)7/13/20224表空间(tablespace)与表(Tables)TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks7/13/20225Oracle 表空间与数据文件F1.oraF2.oraF3.oraF4.oraF5.oraTablespace 1Tablespace 2Table 1Table 2Table 37/13/20226Oracle 块结构与段对象7/13/20227Type Format FillerDBASCNBaseSCNWrapSeq FlagChk ValFillerTailObj IDSCN of LastCleanoutNo of ITLSlotsFree ListFlagBlockTypeITL Freelist SlotDBA of next blockon FreelistBlockHeaderCacheLayerTransLayerITL Index NumberTrans IDUndo Address.No ofRowsAffectedCommitted SCN/FreeSpace CreditsTable DirectoryRow DirectoryRowFlagClusterKeyColumnNumberLockByteDataColLengthDataColLengthRows.Transaction Free ListsFree SpaceOracle 块结构与段对象-块内部结构7/13/20228Oracle 块结构与段对象7/13/20229内容提要7/13/202210创建表结构准备7/13/202211创建表结构准备数据类型数据类型使用使用VARCHAR2(size)变长-1 4000 字符CHAR(size)定长 1 2000字符NUMBER(p)整数NUMBER(p,s)定点数十进制 NUMBER浮点数十进制DATE日期类型LONG变长大对象(4 Gigabyte)NCHAR类似 CHAR,使用 2-字节 编码BLOB二进制数据,4GBCLOB单字节字符数据,可达4GBNCLOB类似CLOB,支持2-字节 编码BFILE引用的外部的二进制文件LONG RAW原二进制数据7/13/202212创建表结构准备7/13/202213创建表结构准备7/13/202214创建表结构准备7/13/202215创建表结构准备 BINARY-FLOAT BINARY-DOUBLE MAXIMUM FINITE VALUE 3.40282+38F 1.79769313486231E+308MINIMUM FINITE VALUE 1.17549E-38F 2.22507485850720E-30810g7/13/202216Oracle 对象创建准备-数据类型7/13/202217内容提要7/13/202218创建表结构-语法CREATE TABLE USER.table_name(COLUMN1 DATATYPE DEFAULT EXPN COLUMN_CONSTRAINT|TABLE_CONSTRAINT,COLUMN1 DATATYPEDEFAULT EXPN COLUMN_CONSTRAINT|TABLE_CONSTRAINT .)CLUSTER CLUSTER(COLUMN1,COLUMN2.)PCTFREE N PCTUSED NINITRANS N MAXTRANS NSTORAGE NTABLESPACE tablespace_name ENABLE|DISABLE AS QUERY7/13/202219创建表结构语法-子句解释7/13/202220创建表结构语法-子句解释7/13/202221创建表结构语法-子句解释7/13/202222创建表结构语法-块变化7/13/202223内容提要7/13/202224创建表结构样例1-块控制参数create table user_dflow(user_name varchar2(30),/*用用 户户 名名 */bj_date date,/*日期及时间日期及时间 */.day_fee_in number(16,6),/*日入流量费用日入流量费用*/day_fee_out number(16,6)/*日出流量费用日出流量费用*/)TABLESPACE users PCTFREE 5PCTUSED 80/7/13/202225创建表结构样例2-存储分配参数create table user_dflow(user_name varchar2(30),/*用用 户户 名名 */bj_date date,/*日期及时间日期及时间 */.day_fee_in number(16,6),/*日入流量费用日入流量费用*/day_fee_out number(16,6)/*日出流量费用日出流量费用*/)TABLESPACE users PCTFREE 5 PCTUSED 80STORAGE(INITIAL 120M NEXT 60M PCTINCREASE 0 )7/13/202226内容提要7/13/202227存储参数在9i/10g的变化7/13/202228存储参数在9i/10g的变化7/13/202229存储参数在9i/10g的变化7/13/202230存储参数在9i/10g的变化DROP TABLE customer;CREATE TABLE customer(customerID INT NOT NULL PRIMARY KEY,firstName VARCHAR2(30)NOT NULL,lastName VARCHAR2(30)NOT NULL,phone VARCHAR2(20)NULL,address1 VARCHAR2(30)NULL,address2 VARCHAR2(30)NULL,city VARCHAR2(30)NULL,state CHAR(2)NULL,zip CHAR(10)NULL )PCTFREE 5 PCTUSED 85TABLESPACE SYSTEM STORAGE(INITIAL 4M NEXT 1M PCTINCREASE 0);-DROP TABLE product;CREATE TABLE product(productID INT NOT NULL PRIMARY KEY,productName VARCHAR2(30)NOT NULL,productVendor VARCHAR2(50)NULL,cost FLOAT NOT NULL CONSTRAINT chk_cost CHECK(cost 0),price FLOAT NOT NULL CONSTRAINT chk_price CHECK(price 0)PCTFREE 5 PCTUSED 85TABLESPACE USERS STORAGE(INITIAL 4M NEXT 2M);SQL select tablespace_name,table_name,initial_extent,next_extent,pct_free,pct_usedSQL select tablespace_name,table_name,initial_extent,next_extent,pct_free,pct_used 2 from dba_tables where table_name in(PRODUCT,CUSTOMER)2 from dba_tables where table_name in(PRODUCT,CUSTOMER)3 /3 /TABLESPACE_NAM TABLE_NAME INITIAL_EXTENT NEXT_EXTENT PCT_FREE PCT_USEDTABLESPACE_NAM TABLE_NAME INITIAL_EXTENT NEXT_EXTENT PCT_FREE PCT_USED-SYSTEM CUSTOMER 4194304 5 85SYSTEM CUSTOMER 4194304 5 85USERS PRODUCT 4194304 5USERS PRODUCT 4194304 5-好好观察上面的结果好好观察上面的结果-7/13/202231存储参数在9i/10g的变化7/13/202232存储参数在9i/10g的变化7/13/202233存储参数在9i/10g的变化7/13/202234存储参数在9i/10g的变化7/13/2022357/13/2022367/13/2022377/13/2022387/13/202239内容提要7/13/202240修改表结构-Alter Table7/13/202241修改表结构-Alter Table7/13/202242修改表结构7/13/202243修改表结构7/13/202244删除表结构7/13/202245删除表结构7/13/202246释放不用的空间ALTER TABLE employeesDEALLOCATE UNUSED;7/13/20224710g段收缩-表的存储空间收缩7/13/20224810g段收缩-表的存储空间收缩ALTER TABLE emp MOVE TABLESPACE STORAGE(INITIAL 4M Next 2M minextents 2);7/13/20224910g段收缩-表的存储空间收缩7/13/20225010g段收缩-表的存储空间收缩A L T E R T A B L E S H R I N K S P A C E COMPACT|CASCADE;10g7/13/20225110g段收缩-表的存储空间收缩SQL ALTER TABLE emp space;ALTER TABLE emp space *第第 1 行出现错误行出现错误:ORA-01735:无效的无效的 ALTER TABLE 选项选项SQL ALTER TABLE emp enable row movement;表已更改。表已更改。SQL ALTER TABLE emp SHRINK SPACE;表已更改。表已更改。10g7/13/202252表名与列名的修改 9i10gSQL ALTER TABLE employees RENAME TO employee;表已更改。表已更改。ALTER TABLE customersRENAME COLUMN credit_limit TO credit_amount;表已更改。表已更改。7/13/202253创建表与修改小结7/13/202254问题&回答Z2007年7月31日7/13/202255演讲完毕,谢谢观看!
展开阅读全文