Sybase IQ基础知识与核心要点

Sybase IQ支持的主要索引类型为:

  • LowFast-LF(低基数)
  • HighGroup-HG(高基数)
  • HighNonGroup-HNG(高基数)
  • FastProjiectinFP

建立Bit-Wise索引的一般原则:

  • 在每个列上都建FP索引;
  • 在唯一值<1000的字段上建立LF索引;
  • 在参加连接的字段上建HG或LF索引;
  • 唯一值>1000且用在GROUP BY,SELCT DISITICT,COUNT DISITICT中的字段上建立HG索引;

此外的其它列若出现在where条件中或聚集运算中,则建立HNG索引。


  • Sybase IQ可利用预连接技术来提高即席查询速度
  • Sybase IQ支持两类连接处理:一类是即席连接(在查询时处理);另一类是预连接(在加载时处理)。大多数应用是二者的结合。即席连接适用于多对多的联系,被连接的表之间的尺寸差别超过10倍。
  • 预连接适用于一对多的联系,被连接的表之间的尺寸差别不大于10倍,如:等值或左、右外连接。但预连接将导致增大存储量并降低加载速度。
  • Sybase IQ能对已建立了HG或LF索引的列,再利用"Joined Indexset"完成预连接处理。它通常能使查询速度提高10倍以/

IQ STORE 约点总磁盘空间的70%。IQ temporary Store大小约为IQ Store的20%。
UNIX:不少于800M。
WINDOWS:不少于375M。
虚拟内存=物理内存+磁盘交换分区大小。
/
  Start utility db

/
start_asiq -n myserver -gu utility_db
dbisqlc -c
"eng=myserver;uid=DBA;pwd=SQL;dbn=utility_db;links=tcpip{host=158.77.123.244:2638}" -q createdb.sql 1>createdb.out 2>createdb.err
/
  Create database
/
start_asiq -n myserver -gu utility_db

create database '/sybaseiq/data/LSL.db'
  message path  '/sybaseiq/data/LSL.iqmsg'
  log on  '/sybaseiq/data/LSL.log'
  temporary path  '/sybaseiq/data/IQTemp_01'
  IQ PATH '/sybaseiq/data/IQMain_01'
  IQ PAGE SIZE 262144
--  IQ SIZE 2048
--  TEMPORARY SIZE 4096
  case respect
  collation 'EUC_CHINA'
--  collation '936ZHO'
  blank padding on
  java on
--  transaction log on
--  PASSWORD CASE RESPECT
  jconnect on;

/
  Drop database
/
DROP DATABASE '/sybaseiq/data/LSL.db'

/
 Add dbspace
/
create dbspace IQMain_01  AS '/sybaseiq/data/IQMain_01' size 4096;
create dbspace IQMain_02  AS '/sybaseiq/data/IQMain_02' IQ STORE;
create dbspace IQMain_03  AS '/sybaseiq/data/IQMain_03' IQ STORE;
create dbspace IQMain_04  AS '/sybaseiq/data/IQMain_04' IQ STORE;
create dbspace IQMain_05  AS '/sybaseiq/data/IQMain_05' IQ STORE;

/
 Drop dbspace
/
drop dbspace IQMain_01

/
 database option
/
set option public.minimize_storage='on' ;
set option public.IQMSG_LENGTH_MB=300;
set option public.load_memory_mb=100 ;
set option public.notify_modulus=1000000 ;
set option public.append_load='on' ;
set option Public.Disk_Striping = 'ON';
set option Public.Disk_Striping_Packed = 'ON' ;
set option public.Parallel_GBH_Enabled='ON' ;
set option public.Parallel_GBH_Units=24 ;
set option Public.Force_No_Scroll_Cursors ='ON' ;
set option Public.query_temp_space_limit=0;
set option Public.Query_Plan ='OFF' ;
set option Public.Query_Detail ='OFF' ;

/
 link disk and file
/
ln -s /dev/vgjyfxdb/rlvjyfxsyb01 /sybaseiq/data/IQMain_01
ln -s /dev/vgjyfxdb/rlvjyfxsyb02 /sybaseiq/data/IQMain_02
ln -s /dev/vgjyfxdb/rlvjyfxsyb03 /sybaseiq/data/IQMain_03
ln -s /dev/vgjyfxdb/rlvjyfxsyb04 /sybaseiq/data/IQMain_04
ln -s /dev/vgjyfxdb/rlvjyfxsyb05 /sybaseiq/data/IQMain_05
ln -s /dev/vgjyfxdb/rlvjyfxsyb06 /sybaseiq/data/IQTemp_01



 backup.sh
/
#backup IQ file size: 20GB
DAT=$(date '+%Y%m%d')
iqsup<<!
backup database crc on full to '/dump/sybiq/iq_full_$DAT.dmp' size 20000000
go
!


/
 start_asiq [config file] dbname [switchs]
/
start_asiq @LSL.cfg LSL.db
/
  stop.sh
/
stop_asiq

Dbstop -c "uid=DBA; pwd=SQL; eng=server_name; dbn=db_name"

/
 database.cfg
/
# LSL.cfg
# ------------------------------------------------------------
# Default startup parameters for the ASIQ demo database
# ------------------------------------------------------------
#第一个 -n servername ;第二个 -n dbname
-n LSL
-x tcpip{port=4500}
# The following parameters are also found in the configuration file
# $ASDIR/scripts/default.cfg.  Any parameters not specified below
# and not in the start up parameter list, will be added by start_asiq
# using default.cfg as a guide.

-cl  32m
-ch  1024m
-gc 20
-gd all
-gl all
# -gm 最大连接数
-gm 50
-iqnumbercpus 9
-gp 4096
-ti 4400
-tl 1200
-p 8192
-iqmc 8000
-iqtc 12000

#设置服务器和数据选项
#1、 数据库的启动参数均可以写在".cfg"文件中。
#2、 启动服务器的语法:
#start_asiq server-switchs database_file
#其中:"server-switchs"可以为:
#-c :缓存大小,默认windows为32M,Unix为48M。
#-gp:Catalog store页大小。
#-gm:服务器允许的连接数。
#-n:IQ server的名字。如果有两个"-n"选项,则第一个是IQ server的名字,第二个"-n"为IQ 数据库的名字。
#-gc:checkpoint时间间隔。默认为20,推荐为6000。
#-gr:最大的恢复时间。默认为2。
#-ti:客户端超时时间。默认为4400分钟。
#-tl:默认网络超时时间。默认120秒。
#-iqmc:主缓存大小,单位:M。
#-iqtc:临时缓存大小,单位:M。
#注:主缓存:临时缓存=2:3
#在默认情况下,Sybase IQ server使用2638端口。


创建用户:
sp_iqaddlogin username 'password'
或者
创建用户或者修改密码:
grant connect to user1,user2 identified by password1,password2
grant resource to user1
select * from sysobjects


#使用SET OPTION命令更变数据库的配置:  
#(1)、语法:
#SET [TEMPORARY] OPTION  
#[user_id. | PUBLIC.]option_name = [option_value]  
#其中的"option_name"可以是:
#Force_No_Scroll_Cursors='on'(默认为"off")禁止缓存用户的查询结果。
#Query_Temp_Space_Limit=0(默认为2000M),设置临时缓存的最大值。0表示不限制。  
#Public.Query_Plan='off'(默认为"on")禁止将用户的查询计划打印到IQ Message File中,因为查询计划可以会使之大小迅速增加。


#例子:  
#SET OPTION public.Force_NO_Scroll_Cursors='no'  
#查看数据库的所有被改动过的(即非默认值)选项,用存储过程:sp_iqcheckoptions。

#Sybase IQ内存配置
#1、 IQ从单一的一个内存池中分配内存。  
#2、 从操作系统层面来看,IQ Server的内存是由堆组成。
#3、 Buffer:内存中的一块区域,它存储了写入数据库或从数据库中读取的未解压的数据。
#4、 IQ Page Size:IQ Server中每一个内存页的大小。
#5、 IQ Page Size/16=BLOCK SIZE  
#6、 在启动服务器时,可以用参数-c来指定服务器缓存的初始大小。在所有平台中,这个值最大为256M。
#7、 IQ Buffer有两种类型:

#  (1)、主Buffer缓存:IQ Store的Buffer。(占总大小的40%)
#  (2)、临时Buffer:IQ temporary Buffer。(占总大小的60%)
#8、 在Sybase IQ server中一个活动的用户大约占用10M内存,一个非活动用户大约占5M内存。

##unix odbc
[SybaseIQ_64bit]
driver=/work/sybase/ASIQ-12_6/lib/libdbodbc9.so
UID=dba
PWD=sql
Servername=<hostmachine>_asiqdemo
CommLinks=tcpip

DatabaseName=asiqdemo


可选的有:
LogFile=/work/sybase/ASIQ-12_6/mylogfile.out
ANAAppCodePage=4
InstallDir=/work/sybase/ASIQ-12_6/lib
Trace=0
TraceDll=/work/sybase/ASIQ-12_6/lib/odbctrac.so
TraceFile=odbctrace.out
UseCursorLib=0

##widows odbc
tcp/ip选项:host=xxx.xxx.xxx.xxx;port=xxxx

#open client
#windows:
server address:  ip,port
#unix interface
iqtest125
master tcp ether 158.77.123.244 2661
query tcp ether 158.77.123.244 2661
要求:数据库名和Server 名必须一致。
open client可用isql连接来测试


数据库性能监控例程
. sp_iqconnection 显示连接用户和版本
. sp_iqcontext 显示运行参数
. sp_iqcheckdb 数据库正确性检查
. sp_iqdbstatistics 最近的 sp_iqcheckdb 结果
. sp_iqdbsize gives the size of the current database
. sp_iqspaceinfo 输出数据库对象使用空间情况
. sp_iqstatus 数据库各种信息展现
. sp_iqtablesize 输出指定表的大小
. sp_iqgroupsize 输出指定组成

执行计划显示
. 当前系统选项查看 SET;
. SET TEMPORARY OPTION Query_Plan=ON;
. SET TEMPORARY OPTION Query_Detail=ON;
. SET TEMPORARY OPTION Query_Plan_After_Run=ON;
. SET TEMPORARY OPTION Query_Plan_AS_HTML=ON;
. SET TEMPORARY OPTION QUERY_PLAN_AS_HTML_DIRECTORY='/tmp';

倒出存储过程:
defncopy -Udw -Pdw -Sdwdev out procedure.sql tpdw_dev proc_test
将一个DBSPACE中的OBJECTS移动到另一个DBSPACE中:Sp_iqrelocate

把远程库同步到本地库的方法:
1,建一个remote server(jdbc,ip:port?CHARSET=charset)
2,从远程表中select数据到本地表:
insert into locateTablename location 'remoteservername.remotedbname'  {select * from remoteTablename};


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空