/*
*?? Sybase IQ for Data Warehouse 培训ȝ(?
*?? xuwedo
*文章属? 原创
*?? 2007-03-11
*?? http://blog.csdn.net/xuwedo2003/
*?? http://blog.csdn.net/xuwedo2003/
* Copyright (c) 2007
* All rights reserved.
* 如有转蝲,h明作者及本信?br />* 文g名称:
* 文g标识:
* 摘 ?? Sybase IQ, Data Warehouse
* 开始时? 2007-03-11
*
* 当前版本: 1.0
* 作 ?? xuwedo2001@sohu.com
* 相关信息:
* 完成日期: 2007q??1?br />*/
正文:
(一)
怎样创徏数据?/span>
1
、DBspace是分配到IQ数据库的驱动I间的逻辑?/span>
2
、一个新IQ数据库最多可以有2047个DBspace?/span>
3
、Sybase的各U类型DBspace的限Ӟ
Q?Q、Catalog Store最大ؓ1TB?br />Q?Q、IQ Store 和IQ temp Store 在裸讑֤上没有大限Ӟ在文件系l中?TB?/span>
4
、IQ Store 和IQ temp Store可以扩大或从数据库删除?/span>
5
、创建数据库Q?br />CREATE DATABASE full_path db_name[[TRANSACTION] {LOG ON [log_file_name][MIRROR mirror_file_name]}]
IQ PATH iq_file_anem
[IQ SIZE iq_file_size]
[IQ RESERVE sizeMb]
TEMPORARY PATH temp_file_name
[TEMPORARY SIZE temp_db_szie]
[TEMPORARY RESERVE sizeMB]
[MESSAGE PATH message_file_name]
例子1Q?/span>
CREATE DATABASE
?/span>
d:\\mydb\\mydb.db
?/span>
IQ PATH
?/span>
d:\\iqmain\\mydb01.iq
?/span>
IQ SIZE 200
TEMPORARY PATH
?/span>
e:\\iqtem\\mydb01.iqtmp
?/span>
TEMPORARY SIZE 200
IP PAGE SIZE 65536
6
、可以用Sybase Central创徏数据库(在图形环境下Q?/span>
7
、可以用sp_iqstatus来查看当前数据库的详l信息?/span>
8
、删除一个DBspace
Q?Q、一个IQ store如果存有数据的话Q则不能被删除。(可以使用Utility数据库将一个DBspace的数据移动到另一个DBspace中去Q再删除Q?/span>
Q?Q、一个IQ temporary Store仅在为空时才可以被删除?/span>
9
、删除一个数据库的语法:
DROP DATABASE db_filename
例子QDROP DATABASE ‘d:\\mydb\\mydb.db
?/span>
10
、怎样才能看到所有的DBspace的物理文件名Q?br />用以下命令:Select * from sysqifile
(?
讄服务器和数据选项
1?span style="FONT: 7pt 'Times New Roman'">
数据库的启动参数均可以写在?cfg”文件中?/span>
2?span style="FONT: 7pt 'Times New Roman'">
启动服务器的语法Q?br />start_asiq server-switchs database_file
其中Q?em>server-switchs?/em>可以为:
-c
Q缓存大,默认windows?2M,Unix?8M?/span>
-gp:Catalog store
大?/span>
-gm
Q服务器允许的连接数?/span>
-n
QIQ server的名字。如果有两个?n”选项Q则W一个是IQ server的名字,W二个?n”ؓIQ 数据库的名字?/span>
-gc
Qcheckpoint旉间隔。默认ؓ20Q推荐ؓ6000?/span>
-gr
Q最大的恢复旉。默认ؓ2?/span>
-ti
Q客L(fng)时旉。默认ؓ4400分钟?/span>
-tl
Q默认网l超时时间。默?20U?/span>
-iqmc
Q主~存大小Q单位:M?/span>
-iqtc
Q(f)时缓存大,单位QM?/span>
注:ȝ存:临时~存=2Q?
在默认情况下QSybase IQ server使用2338端口?/span>
3?span style="FONT: 7pt 'Times New Roman'">
使用SET OPTION命o更变数据库的配置Q?br />Q?Q、语法:
SET [TEMPORARY] OPTION
[user_id. | PUBLIC.]option_name = [option_value]
其中的“option_name”可以是Q?br />Force_No_Scroll_Cursors=‘on?默认为“off?止~存用户的查询结果?br />Query_Temp_Space_Limit=0(默认?000M)Q设|(f)时缓存的最大倹{?表示不限制?br />Public.Query_Plan=‘off?默认为“on?止用L(fng)查询计划打印到IQ Message File中,因ؓ查询计划可以会之大迅速增加?br />例子Q?br />SET OPTION public.Force_NO_Scroll_Cursors=
?/span>
no
?/span>
4?span style="FONT: 7pt 'Times New Roman'">
查看数据库的所有被改动q的Q即非默认|选项Q用存储q程Qsp_iqcheckoptions?/span>
(?
Sybase IQ
索引和数据类?/span>
1
、Sybase IQ?U烦引类型:
Q?Q、FPQFast ProjectionQ此索引为默认的索引形式Q在创徏表时pȝ自动讄此烦引?/span>
特点Q用于SELECT、LIKE ?sys%’、SUMQA+BQ、JOIN操作{语句?/span>
此类型烦引也是唯一可用于BIT数据cd的烦引?/span>
FP
索引可以优化索引Q将于255的唯一值的索引压羃?字节中,小?5537的唯一值烦引压~到2字节中?/span>
Q?Q、LF(Low Fast)Zq树的l构Q存储唯一值小?500个的索引Q是最快的索引cd。可以用作唯一索引?/span>
特点Q用??Q?、IN、NOT IN查询参数?/span>
MIN
Q)、MAXQ)、COUNTQ)、Group By、JOIN{?/span>
Q?Q、HNG(High Nongroup)Z位的优化索引Q适合于数字烦引。用于范围查扑֒求合计算?/span>
特点QRangs、Between、MINQ)、MAXQ)、SUMQ)、AVGQ){?/span>
Q?Q、HG(High Group) Zq树的l构Q存储唯一值大?500个的索引Q是最快的索引cd。可以用作唯一索引?/span>
特点Q同LF索引的特炏V?/span>
Q?Q、CMP(compare)仅用于比较一个表中的两个列的比较?/span>
特点Q?lt;?=?>?<= ?gt;=
Q?Q、WD(Word)Q仅用于索引数据cd为WORD的列?br /> 特点Q‘CONTAINS’、LIKE操作Q但没有?’)?/span>
例子Q?/span>
Select count(*) from Customer where address contains(
‘Main?
Q?Q、DATE(date)仅用于日期类型的列?/span>
Q?Q、DTTM(Datetime)仅用于日期时间类型的列?/span>
Q?Q、TIME(Time)仅用于时间类型的列?/span>
例子Q?br />Select * from sales where DATAPART(YEAR,dales_dt) = 2007
Select * from sales where sales_dt>=?003-01-01 08Q?0Q?0?/span>
(?
创徏表和索引
1
、创Q?/span>
例子1Q?/span>
CREATE TABLE employee(
Emp_id int NOT NULL
,lname varchar(30) NULL
,fname varchar(30) NULL
,salary money NULL)
例子2Q?/span>
CREATE TABLE stores(
Store_id char(4) NOT NULL
,store_name varchar(20) NOT NULL
,store_address varchar(40) NOT NULL
,UNIQUE(store_id))
例子3Q?/span>
CREATE TABLE products(
Product_code char(5) NOT NULL
,product varchar(40) NOT NULL
,price money NULL
PRIMARY KEY (products_code))
例子4Q?/span>
CREATE TABLE sales(
Sales_code char(10) PRIMARY KEY
,sales_date DATE NOT NULL
,product_code char(5) NOT NULL
,FOREIGN KEY fk1(product_code) REFERENCES product (product_code))
例子5Q?/span>
SELECT * INTO co_residential_customer from customer where 1=2
2
、用Sybase Central 可以在图形界面下创徏表?/span>
3
、删除表QDROP TABLE tablename
4
、删除表中的所有内容:TRUNCATE TABLE [owner.]table_name
5
、创图,语法Q?/span>
CREATE VIEW [owner.]view_name[(column-name[,
?/span>
])]
AS select-without-order-by
[WITH CHECK OPTION]
例子1Q?/span>
CREATE VIEW sd_customer AS SELECT * FROM customer
WHERE sheng =
?/span>
SD
?/span>
例子2Q?/span>
CREATE VIEW emp_dept
AS SELECT emp_home,emp_fname,dept_name
From Employee,Department
WHERE Employee.dept_id = Department.dept_id
5
、用Sybase Central 可以在图形界面下创徏视图?/span>
6
、创建烦引:
CREATE [UNIQUE] [index-type] INDEX
Index_name ON
[owner.]table_name (column_name[,
?/span>
])
[{IN | ON} DBSpace_name]
[NOTIFY integer]
[DELIMITED BY
?/span>
separators-string
?/span>
]
[LIMIT maxwordsize-integer]
例子1Q?/span>
CREATE HG INDEX
Cust_customer_id ON
Cutomer(customer_id)
例子2Q?/span>
CREATE CMP INDEX price_compare
ON orders(purchase_price,list_cost)
7
、删除烦引:
DROP INDEX [[owner.]tablename.]index_name
例子Q?br />DROP INDEX cust_customer_id
(?
Sybase IQ
内存配置
1?span style="FONT: 7pt 'Times New Roman'">
IQ
从单一的一个内存池中分配内存?/span>
2?span style="FONT: 7pt 'Times New Roman'">
从操作系l层面来看,IQ Server的内存是由堆l成?/span>
3?span style="FONT: 7pt 'Times New Roman'">
Buffer
Q内存中的一块区域,它存储了写入数据库或从数据库中读取的未解压的数据?/span>
4?span style="FONT: 7pt 'Times New Roman'">
IQ Page Size
QIQ Server中每一个内存页的大?/span>
5?span style="FONT: 7pt 'Times New Roman'">
IQ Page Size/16=BLOCK SIZE
6?span style="FONT: 7pt 'Times New Roman'">
在启动服务器Ӟ可以用参?c来指定服务器~存的初始大。在所有^CQ这个值最大ؓ256M?/span>
7?span style="FONT: 7pt 'Times New Roman'">
IQ Buffer
有两U类型:
Q?Q、主Buffer~存QIQ Store的Buffer。(占d的40%Q?br />Q?Q、(f)时BufferQIQ temporary Buffer。(占d的60%Q?/span>
8?span style="FONT: 7pt 'Times New Roman'">
在Sybase IQ server中一个活动的用户大约占用10M内存Q一个非zd用户大约?M内存?/span>

]]>