Sybase IQ 的基礎
Sybase IQ的一些基礎總結:
1、IQ跟其它的關系型數據庫相比,它的主要特征是:查詢快、數據壓縮比高、Load快,但是插入更新慢,不太適應數據老是變化,它是按列存儲的。它適做DSS(決策支持系統),數據集市,數據倉庫,它不適合OLTP。適合OLAP。
注:OLTP即聯機事務處理,就是我們經常說的關系數據庫,意即記錄即時的增、刪、改、查,就是我們經常應用的東西,這是數據庫的基礎;OLAP即聯機分析處理,是數據倉庫的核心部心,所謂數據倉庫是對於大量已經由OLTP形成的數據的一種分析型的數據庫,用於處理商業智能、決策支持等重要的決策信息;數據倉庫是在數據庫應用到一定程序之后而對歷史數據的加工與分析;是處理兩種不同用途的工具而已。
2、IQ自身的體系組成,它由:
Catalog store(用於存儲數據庫自身Metabase信息),一般是dbname.db文件存儲,如:反洗錢叫amldb.db
DBspace(它是IQ的數據存儲空間),它又包括兩種類型,一是IQ Store,用於存放真正的數據,一般用裸設備,直接用文件系統時一般叫dbname.iq;二是IQ Temporery Store,用於存放臨時數據,一般用裸設備,直接用文件系統時一般叫dbname.iqtmp
IQ Message Log 這是IQ的消息日志,可以刪除,也可以限制大小,一般叫dbname.iqmsg
IQ Transcation Log 這是IQ的事務日志,不可以隨意刪除,一般叫dbname.log,注意:不要看到.log就認為可以刪除
IQ Server Log 這是IQ服務器引擎消息,包括一些啟動,停止的日志,可以刪除。
3、停止啟動IQ的命令,Start_asiq,Stop_asiq,dbstop,連接IQ的命令,dbisql,dbisqlc,查看IQ數據庫信息的存儲過程Sp_iqstatus
4、IQ的服務配置文件,一般叫dbname.cfg,里面的一些基礎配置參數:Server名字,數據庫名稱,端口,其中最重要的一點,IQ緩存或者叫內存的配置,通過-iqmc,-iqtc,兩個參數。其中iqmc表示:主緩存/內存,iqtc表示:臨時緩存/內存,一般它們的比例推薦值是iqmc:iqtc 4:6
5、知道IQ數據庫的參數配置(DB Option),Set[Temporary-臨時生效]Option pulic.IQMSG_LENTH_MB = 500,限制IQmsg文件的大小為500MB,當加了temporary時,表示本次連接生效。注意下Load_Memory_MB這個option,因為跟Load時內存有關。
6、IQ的索引,一般關系型數據庫索引是B-Tree,IQ的索引機制是BitMap。
IQ索引的類型主要包括:FP、LF、HG、HNG等,
FP是IQ默認的索引,也就是說IQ創建表后,自動每一列就都帶有這種索引。所以IQ查詢快,它號稱所有數據都有索引。
LF是低位索引,也就是說大量數據里面,字段重復次數不多的,比如:分行號,上億記錄也就是那100多個分行號。一般原則是少於1500個,就可以低位索引。
HG就是高位索引了,大於1500個的,有時候也定義成主鍵索引。
索引這一部分,區分清楚各種索引,並且知道當between時用什么索引,當groupby時用什么索引,當like時,=時,>時。
7、表:包括基本表 create table mytable, 本地臨時表 create table #mytable, 全局臨時表 create global temporary table mytable 區分它們的生命周期與作用。不記日志刪除整個表數據:turncate table
8、Load里面的特殊分隔符,如換行: \x0a , tab: \x09