和創(chuàng)建小文件表空間差不多,只不過它的關(guān)鍵字是create bigfile tablespacebigfile表空間只能有一個(gè)數(shù)據(jù)文件,最大可以是2的32次方個(gè)blocks,對于默認(rèn)8k大小的塊,它的最大尺寸是32T
創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元陸川做網(wǎng)站,已為上家服務(wù),為陸川各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
表設(shè)計(jì)可以采取拆分表的方式
縱向拆分表:根據(jù)字段拆分為多個(gè)表,每個(gè)表都有關(guān)聯(lián)字段,可以將他們關(guān)聯(lián)起來
(例如:訂單表,幾個(gè)根據(jù)字段拆分的表中都有1個(gè)訂單號字段)
橫向拆分表:不知道你具體什么數(shù)據(jù),假定其中有時(shí)間字段,根據(jù)時(shí)間來拆分
(例如:1年有12個(gè)月,1個(gè)月的數(shù)據(jù)放入一個(gè)表中)
這個(gè)數(shù)據(jù)的多少和表空間的選擇和你的數(shù)據(jù)量多少是沒有太大關(guān)系的,需要統(tǒng)計(jì)你的數(shù)據(jù)量的大小。如果數(shù)據(jù)量很大,像你說的3*100*2000萬*1.5k需要估算一下他是有多少G?這樣才好設(shè)計(jì)表空間的分配。從10g開始有表空間支持一個(gè)大的數(shù)據(jù)文件,由多個(gè)文件組成肯定沒有一個(gè)文件好管理,但是如果出問題了一個(gè)大數(shù)據(jù)文件損壞肯定造成的損失很大。這就是易維護(hù)性和安全性的取舍。不知道你們磁盤陣列是怎么做的如果沒有raid1,數(shù)據(jù)又很重要的話,也許添加多個(gè)數(shù)據(jù)文件。但是多個(gè)數(shù)據(jù)文件的添加,每個(gè)數(shù)據(jù)文件的大小又受到OS的影響,這個(gè)和DB_block_size的大小又有關(guān)系,具體算法我不細(xì)講,結(jié)論是單個(gè)數(shù)據(jù)文件最多32G。所以這個(gè)時(shí)候就看你的數(shù)據(jù)量大小了,你只說量,但是也許有l(wèi)ob字段之類的我無法估算大小,所以這個(gè)你自己算一下,如果需要的數(shù)據(jù)文件過多的話,你想方便維護(hù)也是可以使用大數(shù)據(jù)文件。sql如下:
SQL create bigfile tablespace giapblob ----------------表空間名字
2 datafile 'H:\ypx\pic02.dbf' ----------------數(shù)據(jù)文件名字路徑
3 size 204800M ----------------200G的bigfile
4 autoextend on next 1024M -----------------擴(kuò)展自動(dòng)1G
5 maxsize unlimited -----------------不限最大
6 extent management local autoallocate; ----------------自動(dòng)管理分配區(qū)間
其中上述只是從管理方便的角度考慮一個(gè)表空間的處理方法,一般單個(gè)表空間最大限制是1022個(gè)數(shù)據(jù)文件*4M數(shù)據(jù)塊*DB_BLOCK_SIZE=32TB。如果數(shù)據(jù)量過大,必須采用多表空間。
另外也要考慮需求中的使用性能,如果表數(shù)據(jù)量過大,比如你們每天2000萬,那有沒有歷史表數(shù)據(jù)?這個(gè)如果是OLAP還好說,OLTP可能要做分區(qū)表等等一系列的性能考慮,情況不同選擇不同。
我認(rèn)為第二個(gè)方案好點(diǎn)。你一張表的列太多了。這樣子必然導(dǎo)致在執(zhí)行操作的時(shí)候非常的慢。分成多個(gè)表的話會(huì)分擔(dān)數(shù)據(jù)庫的壓力,讀寫都很快。
百萬數(shù)據(jù)級的我做過。第一種方案的列數(shù)太多,導(dǎo)致表態(tài)龐大,讀寫都會(huì)很慢。第二種方案將表拆分,一方面在業(yè)務(wù)上做分割,另一方面讀寫速度確實(shí)會(huì)加快。
超大型系統(tǒng)的特點(diǎn)為: 1、處理的用戶數(shù)一般都超過百萬,有的還超過千萬,數(shù)據(jù)庫的數(shù)據(jù)量一般超過1TB; 2、系統(tǒng)必須提供實(shí)時(shí)響應(yīng)功能,系統(tǒng)需不停機(jī)運(yùn)行,要求系統(tǒng)有很高的可用性及可擴(kuò)展性。 為了能達(dá)到以上要求,除了需要性能優(yōu)越的計(jì)算機(jī)和海量存儲(chǔ)設(shè)備外,還需要先進(jìn)的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)和優(yōu)化的應(yīng)用系統(tǒng)。 一般的超大型系統(tǒng)采用雙機(jī)或多機(jī)集群系統(tǒng)。下面以數(shù)據(jù)庫采用Oracle 8.0.6并行服務(wù)器為例來談?wù)劤笮蛿?shù)據(jù)庫設(shè)計(jì)方法: 確定系統(tǒng)的ORACLE并行服務(wù)器應(yīng)用劃分策略 數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計(jì) 系統(tǒng)硬盤的劃分及分配 備份及恢復(fù)策略的考慮 二、Oracle并行服務(wù)器應(yīng)用劃分策略 Oracle并行服務(wù)器允許不同節(jié)點(diǎn)上的多個(gè)INSTANCE實(shí)例同時(shí)訪問一個(gè)數(shù)據(jù)庫,以提高系統(tǒng)的可用性、可擴(kuò)展性及性能。Oracle并行服務(wù)器中的每個(gè)INSTANCE實(shí)例都可將共享數(shù)據(jù)庫中的表或索引的數(shù)據(jù)塊讀入本地的緩沖區(qū)中,這就意味著一個(gè)數(shù)據(jù)塊可存在于多個(gè)INSTANCE實(shí)例的SGA區(qū)中。那么保持這些緩沖區(qū)的數(shù)據(jù)的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)鎖維護(hù)緩沖區(qū)的一致性,Oracle同時(shí)通過I DLM(集成的分布式鎖管理器)實(shí)現(xiàn)PCM 鎖,并通過專門的LCK進(jìn)程實(shí)現(xiàn)INSTANCE實(shí)例間的數(shù)據(jù)一致。 考慮這種情況:INSTANCE1對BLOCK X塊修改,這時(shí)INSTANCE2對BLOCK X塊也需要修改。Oracle并行服務(wù)器利用PCM鎖機(jī)制,使BLOCK X從INSTANCE 1的SGA區(qū)寫入數(shù)據(jù)庫數(shù)據(jù)文件中,又從數(shù)據(jù)文件中把BLOCK X塊讀入INSTANCE2的SGA區(qū)中。發(fā)生這種情況即為一個(gè)PING。PING使原來1個(gè)MEMORY IO可以完成的工作變成2個(gè)DISK IO和1個(gè) MEMORY IO才能夠完成,如果系統(tǒng)中有過多的PING,將大大降低系統(tǒng)的性能。 Oracle并行服務(wù)器中的每個(gè)PCM鎖可管理多個(gè)數(shù)據(jù)塊。PCM鎖管理的數(shù)據(jù)塊的個(gè)數(shù)與分配給一個(gè)數(shù)據(jù)文件的PCM鎖的個(gè)數(shù)及該數(shù)據(jù)文件的大小有關(guān)。當(dāng)INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果這些BLOCK 是由同一個(gè)PCM鎖管理的,仍然會(huì)發(fā)生PING。這些PING稱為FALSE PING。當(dāng)多個(gè)INSTANCE訪問相同的BLOCK而產(chǎn)生的PING是TRUE PING。 合理的應(yīng)用劃分使不同的應(yīng)用訪問不同的數(shù)據(jù),可避免或減少TRUE PING;通過給FALSE PING較多的數(shù)據(jù)文件分配更多的PCM鎖可減少 FALSE PING的次數(shù),增加PCM鎖不能減少TRUE PING。 所以,Oracle并行服務(wù)器設(shè)計(jì)的目的是使系統(tǒng)交易處理合理的分布在INSTANCE實(shí)例間,以最小化PING,同時(shí)合理的分配PCM鎖,減少FALSE PING。設(shè)計(jì)的關(guān)鍵是找出可能產(chǎn)生的沖突,從而決定應(yīng)用劃分的策略。應(yīng)用劃分有如下四種方法: 1、根據(jù)功能模塊劃分,不同的節(jié)點(diǎn)運(yùn)行不同的應(yīng)用 2、根據(jù)用戶劃分,不同類型的用戶運(yùn)行在不同的節(jié)點(diǎn)上 3、根據(jù)數(shù)據(jù)劃分,不同的節(jié)點(diǎn)訪問不同的數(shù)據(jù)或索引 4、根據(jù)時(shí)間劃分,不同的應(yīng)用在不同的時(shí)間段運(yùn)行 應(yīng)用劃分的兩個(gè)重要原則是使PING最小化及使各節(jié)點(diǎn)的負(fù)載大致均衡。 三、數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計(jì) 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)包括確定表及索引的物理存儲(chǔ)參數(shù),確定及分配數(shù)據(jù)庫表空間,確定初始的回滾段,臨時(shí)表空間,redo log files等,并確定主要的初始化參數(shù)。物理設(shè)計(jì)的目的是提高系統(tǒng)的性能。整個(gè)物理設(shè)計(jì)的參數(shù)可以根據(jù)實(shí)際運(yùn)行情況作調(diào)整。 表及索引數(shù)據(jù)量估算及物理存儲(chǔ)參數(shù)的設(shè)置 表及索引的存儲(chǔ)容量估算是根據(jù)其記錄長度及估算的最大記錄數(shù)確定的。在容量計(jì)算中考慮了數(shù)據(jù)塊的頭開銷及記錄和字段的頭開銷等等。