Warning: mkdir(): No space left on device in /www/wwwroot/jx.baidu.com/func.php on line 159

Warning: file_put_contents(./web/hch368.com/cache/ac/f36e6/65b38.html): failed to open stream: No such file or directory in /www/wwwroot/jx.baidu.com/func.php on line 149
GG扑克

GG扑克




  • 红软基地:您身边最放(fàng)心的安全下载站!
您(nín)所在的(de)位置:首页 > 软件(jiàn) > 热门软件 > Informix11.5 for linux安装wps

Informix11.5 for linux安装wps

软件(jiàn)类型(xíng):
国产(chǎn)软件
软件语(yǔ)言:
简体中文
软件大小:
1 MB
软(ruǎn)件授(shòu)权:
免费(fèi)软件
软(ruǎn)件评级:
4
更(gèng)新时间:
2014-09-24
应用平(píng)台:
WinXP, Win7, WinAll
同类推荐(jiàn)软件
软件简介

Informix 数据(jù)库目前最新(xīn)的版本是 11.5,从 Informix 9、Informix 10 到 Informix 11.5,在数据库性能、数据库管理及应用开发等方面都有(yǒu)了(le)很大的提(tí)高,而且(qiě)推出了很多非常有用的(de)新特(tè)性。通(tōng)过对这些特性的使用,可(kě)以大大提高数(shù)据库性能、增强数据(jù)库可管理性及应用开发的灵活性(xìng)。我们这里,给大家介绍(shào)其中的一些特性,希望对大(dà)家能有所帮助。p48红软基(jī)地
数据(jù)库管理方面的一些(xiē)实(shí)用特性 p48红软基地
使(shǐ)用可配置的页(yè)面大小 p48红软基地
我(wǒ)们(men)知(zhī)道,在 Informix 中,数据存储(chǔ)的最基本的单位(wèi)是页,在 Informix 10 版本之前(qián),数据页面的(de)大(dà)小是(shì)固定的,不(bú)能(néng)被(bèi)改变,通常,在(zài) sun、HP 等平台(tái)上,数据页的大(dà)小(xiǎo)为 2K,AIX 及 windows 平台,数据页的(de)大小为 4K 。从 Informix 10 版本开始,我们可以配(pèi)置 Informix 数据库页面的大小(xiǎo),数据库(kù)页面的大小可(kě)以是 2K-16K 。通(tōng)过提供可配置的页面大小功(gōng)能(néng),可(kě)以给(gěi)我们带来很多(duō)好(hǎo)处:p48红软(ruǎn)基地
空(kōng)间使用的效(xiào)率会更高(gāo) p48红软基(jī)地
从(cóng) Informix 10 开始,一个(gè)页面可以达(dá)到(dào) 16K 的连续(xù)空间,可以更有效(xiào)的使用数据空(kōng)间。比如说,我(wǒ)们表中一行(háng)的数据(jù)大小为 1200 字节,那么,当(dāng)使用 2K 大小页面时(shí),只能存放 1 行数据,3 行数据需(xū)要 6K 大小空间;如(rú)果采用 4K 大小(xiǎo)页面,那么(me) 3 行数(shù)据(jù)可以放(fàng)在一个 4K 页面上(shàng),空间会节省(shěng) %33 。那么,当对(duì) 30 行数据而言,如果(guǒ)采用 2K 大小页面时(shí),需要(yào)占用 60k 大小空间,如果采用 4K 大小页面时,只需要占(zhàn)用(yòng) 40k 大小空(kōng)间,如果(guǒ)采(cǎi)用 6k 大小(xiǎo)页面时,则仅需要占用(yòng) 36k 大(dà)小空间 , 可以节省 40% 的空(kōng)间。 支持(chí)更(gèng)大的索引键值, 最大可(kě)以达(dá)到 3K 。 p48红(hóng)软基地
这样,我们可以在一个索引(yǐn)页(yè)面上(shàng)放置更多的(de)索引(yǐn)键,支持更大的键值(zhí),而不需要增(zēng)加索引树的层次。采用可配置(zhì)页面大(dà)小功能,可(kě)以显(xiǎn)著(zhe)提高具(jù)有大量重复索引键值情况(kuàng)下(xià)的处理性能。 存取(qǔ)效(xiào)率的提高 p48红(hóng)软基地
通过采用可配置页(yè)面大小功能,可以降低(dī)数(shù)据页(yè)和(hé)索引页的 IO 操作次数(shù),提(tí)高存取效率。通过配置页面(miàn)大(dà)小,很(hěn)长的(de)记录(lù)行可以只存放在单个页面上,降低了读取每条(tiáo)记录的页(yè)面数目;在以(yǐ)前(qián)的版本中,超长的记录需要 remainders pages,采用大的页面足够用来(lái)存放整条记录(lù),略去了访问(wèn) remainders pages 的时间;大的索引页面可以存放(fàng)更多(duō)的(de)索引项,从而降低了索引的层数,减少(shǎo)了在(zài)索(suǒ)引树上遍(biàn)历的(de)开销(xiāo);在(zài)决策支持应用的环境中,使(shǐ)用大(dà)的页面可以降(jiàng)低全表扫(sǎo)描的(de)页面的数目,提高运行效率。 我们可以在数据库空间(jiān)(dbspace)级别以及缓冲池(buffer pool)级别来定义(yì)数据页面的(de)大小,其范(fàn)围可以是 2K-16K,而(ér)且定义的数据页面大小必(bì)须是系统缺省页面大小的倍(bèi)数。可配置的页面(miàn)大小功(gōng)能需要系统(tǒng)开启(qǐ)大块(large chunk)功能。p48红软基地(dì)
在创建 dbspace 时,这个(gè)特性允许指定标准或临时 dbspace 的页大小。如果要使用比默认页大小所(suǒ)允许的键长更长的键,可(kě)能(néng)需要指定非(fēi)默(mò)认的页大(dà)小。 根 dbspace 使用默认的页大小。如果希(xī)望指定页(yè)大(dà)小,指(zhǐ)定(dìng)的值必(bì)须是默认页大小(xiǎo)的整数倍,而且不能超过 16 KB 。p48红软基地(dì)
使(shǐ)用 onspaces 命(mìng)令(lìng)创建 dbspace 的基本语法如下:p48红软基(jī)地
onspaces – c – d dbs – k pgsize – p path -o offset -s size ;其中,pgsize 用来指定 dbspace 的页面大小 (in K):p48红软基(jī)地
页面大小的范围从 2K 到(dào) 16K 。 页面大小(xiǎo)必须是缺(quē)省页(yè)面大小 (2k or 4K) 的倍(bèi)数(shù)。 Dbspace 创建(jiàn)之后,页面大小不(bú)能修改。 如果相对应的页面大小的缓冲池不存(cún)在(zài),online 将通过配置参数(shù) BUFFERS_DEF 自动创建一个(gè)。 rootdbs 必须使用系统默认的页面大小。 动(dòng)态创建的(de)日志文件必须在使用系统默认(rèn)的页面大(dà)小(xiǎo)的(de)数据库空间上(shàng)分配。 在创(chuàng)建缓(huǎn)冲(chōng)池时(shí),我们可以使(shǐ)用新的 BUFFERPOOL 配置参数或者 onparams 工具为 dbspace 中所有非默认页大小对应的页定义缓冲池。在使用(yòng) BUFFERPOOL 配置参数或(huò)者(zhě) onparams 工具定义缓冲池(chí)时,需要指定缓冲(chōng)池的信息,包(bāo)括大小、缓冲池中的 LRUS 个数、缓冲池(chí)中的缓冲(chōng)区个数、lru_min_dirty 和 lru_max_dirty 的值(zhí)。 BUFFERS、LRUS、LRU_MAX_DIRTY 和 LRU_MIN_DIRTY 配置参数都不(bú)再使用。在 Version 10.0 中,以前在 BUFFERS、LRUS、LRU_MAX_DIRTY 和 LRU_MIN_DIRTY 配置参数中指定的那些信息,现(xiàn)在要使用 BUFFERPOOL 配置(zhì)参数或者(zhě) onparams 工具指定。使用 BUFFERPOOL 配置参数或 onparams 工具输入(rù)的信息代替了以前用过时的参数指定的信息。p48红(hóng)软基地
通过 onparams 指定缓冲池的基本语法如下:p48红软基(jī)地
onparams – b – g pgsize – n buffs – r lrus – x max – m min ;其中:p48红软基地
pgsize – 缓(huǎn)冲池的(de)页面大小,必须是缺省页面大小 (2k or 4K) 的倍数; buffs – 缓冲池中的页面数目; lrus – 缓冲池中的 LRU 队列的数目(mù); max – 缓冲池中最大脏页的百分比; min - 缓冲池(chí)中最小脏页的百(bǎi)分比; 使用 onparams 创(chuàng)建缓冲池举(jǔ)例:p48红(hóng)软(ruǎn)基地
onparams – b – g 8 – n 3000 – r 4 – x .9 – m .5 ;通(tōng)过上述命令,我们,p48红软基地
创建一个 8k 页(yè)面大小的(de)缓冲池,该(gāi)缓(huǎn)冲(chōng)池具有 3000 个页面,由(yóu) 4 个 LRU 队列组成。 最大脏页(yè)百分比为 0.9% , 最小脏页(yè)百分比为 0.5% 。 每个不同页面大小的缓冲池只能(néng)有一(yī)个。 缓冲池创建之后,需要重启 online 才能生效。 在创(chuàng)建(jiàn) dbspace 时,不需要(yào)通过 onparams 来创建(jiàn)缓冲(chōng)池 . online 将(jiāng)通过配置(zhì)参数 BUFFERS_DEF 自动创建一个。 当采用可配置的(de)页面大小(xiǎo)后(hòu),Informix 数据库中的 onstat 和 oncheck 命令的输(shū)出也发生了相应的变化(huà):p48红(hóng)软基(jī)地
onstat  – d – b – B – P – R – X 的输出都发生了(le)变化(huà)p48红软基地(dì)
onstat -d 命令的输出增加(jiā)了数据页(yè)大小项:Dbspaces p48红软基地
 address number flags fchunk nchunks pgsize flags owner name p48红软基地
 ad357e8 1 0x60001 1 1 2048 N B informix rootdbs p48红软基地
 b62a5b0 2 0x60001 2 1 4096 N B informix dbsp1 p48红软基地
 2 active, 2047 maximum p48红软基地
 Chunks p48红(hóng)软基(jī)地
 address chunk/dbs offset page Rd page Wr pathname p48红软基地
 ad35948 1 1 0 493 5803 /local0/engines/ol_tuxedo/ifmxdata/rootdbs p48红软基地
 b62a710 2 2 0 4 20 /local0/engines/ol_tuxedo/ifmxdata/dbsp1 p48红软基地
 2 active, 32766 maximum p48红(hóng)软(ruǎn)基(jī)地
 NOTE: The values in the "page Rd" and "page Wr" columns for DBspace chunks are displayed p48红软基地
 in terms of system base page size. p48红软(ruǎn)基地
 Expanded chunk capacity mode: alwaysonstat -b 命令的输出变化: IBM Informix Dynamic Server Version 11.10.UC1 -- On-Line -- Up 00:01:39 p48红软(ruǎn)基(jī)地
 -- 1075308 Kbytes Buffer pool page size: 2048p48红软基(jī)地
44454970 0 84 1:30563 4472f000 18 801 80 ffffffffffffffff 0 p48红(hóng)软(ruǎn)基地(dì)
 4445d418 0 84 1:30562 447b1800 18 801 80 ffffffffffffffff 45d654e0 p48红软基地
 44468b60 0 84 1:30567 4485e000 18 801 80 ffffffffffffffff 0 p48红软基地
 44476ec0 0 84 1:30565 44934000 18 801 80 ffffffffffffffff 0 p48红软基地
 444875b8 0 84 1:30564 44a2b800 18 801 80 ffffffffffffffff 0 p48红软基地
 4449dc50 0 84 1:30566 44b7d000 18 801 80 ffffffffffffffff 0 p48红软基地
 444d0700 0 c23 1:34245 44e78000 18 801 10 0 0 p48红(hóng)软基地
 444d1800 0 c23 1:34253 44e88000 18 801 10 0 0 p48红软(ruǎn)基(jī)地
 444d2900 0 c23 1:34261 44e98000 18 801 10 0 0 p48红软基地
 444d3a00 0 c23 1:34269 44ea8000 18 801 10 0 0 p48红软基地(dì)
 444d4b00 0 c23 1:34277 44eb8000 18 801 10 0 0 p48红软(ruǎn)基地
 444d5c00 0 c23 1:34285 44ec8000 18 801 10 0 0 p48红软基地
 444d6c78 0 84 1:30568 44ed7800 18 801 80 ffffffffffffffff 0 p48红软(ruǎn)基地
 444d6d00 0 c23 1:34293 44ed8000 18 801 10 0 0 p48红(hóng)软基(jī)地(dì)
 444d7e00 0 c23 1:34301 44ee8000 18 801 10 0 0 p48红软基地
 444d8f00 0 c23 1:34309 44ef8000 18 801 10 0 0 p48红软基地
 444da000 0 c23 1:34317 44f08000 18 801 10 0 0 p48红软基地(dì)
 444db100 0 c23 1:34325 44f18000 18 801 10 0 0 p48红软基(jī)地
 444dc200 0 c23 1:34333 44f28000 18 801 10 0 0 p48红(hóng)软基地(dì)
 444dca80 0 c23 1:36184 44f30000 18 801 10 0 0 p48红软基(jī)地(dì)
 444dd300 0 c23 1:34341 44f38000 18 801 10 0 0 p48红(hóng)软基地(dì)
 444ddb80 0 c23 1:34346 44f40000 18 801 10 0 0 p48红软基地
 444ed288 0 84 1:30569 45028800 18 801 80 ffffffffffffffff 0 p48红软基地
 4472 modified, 5000 total, 8192 hash buckets, 2048 buffer size p48红软基(jī)地
 Buffer pool page size: 8192 0 modified, 1000 total, 1024 hash buckets, 8192 buffer size新增加 onstat -g buf 显示定义的缓冲池的信息(xī) onstat -g buf 命令(lìng)的输出显示(shì):p48红软基地
IBM Informix Dynamic Server Version 11.10.F -- On-Line -- Up 00:00:25 -- 1075788 Kbytes p48红(hóng)软基地
 Profile Buffer pool page size: 2048 p48红软基地(dì)
 dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached p48红软基地
 2065 2067 274619 99.25 4418 36043 81649 94.59 p48红软基地
 bufwrits_sinceckpt bufwaits ovbuff flushes p48红软基(jī)地
 14850 0 0 6 p48红软基地
 Fg Writes LRU Writes Avg. LRU Time Chunk Writes p48红软基(jī)地
 0 0 nan 2909 Buffer pool page size: 8192 p48红软(ruǎn)基地
 dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached p48红软基(jī)地
 0 0 0 0.00 0 0 0 0.00 p48红软基地(dì)
 bufwrits_sinceckpt bufwaits ovbuff flushes p48红软基地
 0 0 0 0 Fg Writes LRU Writes Avg. LRU Time Chunk Writes p48红软基地
 0 0 nan 0onchecks 命(mìng)令将显示相应(yīng)的页面(miàn)大(dà)小 以下示例显示(shì)了(le) oncheck -pt 命(mìng)令(lìng)的输出示例:p48红软基地(dì)
TBLspace Report for testdb:tab1 p48红软(ruǎn)基地
 Physical Address 2:10 p48红软基地(dì)
 Creation date 10/07/2004 17:01:16 p48红软基地
 TBLspace Flags 801 Page Locking TBLspace use 4 bit bit-maps p48红软基地
 Maximum row size 14 Number of special columns 0 Number of keys 0 Number of p48红软基地(dì)
 extents 1 Current serial value 1 Pagesize (k) 4 First extent size 4 Next extent p48红软基地
 size 4 Number of pages allocated 340 Number of pages used 337 Number of p48红软基地
 data pages 336 Number of rows 75806 Partition partnum 2097154 Partition p48红软(ruǎn)基地
 lockid 2097154 Extents Logical Page Physical Page Size Physical Pages 0 2:106 340 680RTO 策略 p48红软(ruǎn)基地
我们知道,当 Informix 数据库执行崩(bēng)溃(kuì)恢复时,以前我们没(méi)有任何(hé)方法可以(yǐ)预测崩(bēng)溃恢复将在什么(me)时(shí)间完成(chéng),Informix 11 提出了 RTO 技术(shù),当采用 RTO 技术后,我们可以指定测崩(bēng)溃恢操(cāo)作完成的时间,这样,使得崩(bēng)溃(kuì)恢复时(shí)间可(kě)以被(bèi)我们把握(wò)。p48红软基地
关于非阻塞检查点技术的特点及技术实(shí)现,请参(cān)考文章“ Informix 11 非(fēi)阻塞检查(chá)点及 RTO 策(cè)略(luè)应用实践”。 p48红软(ruǎn)基地
SQL 管理(lǐ) API (SQL Administration API)p48红软(ruǎn)基(jī)地
我们知道,Informix 数(shù)据库有(yǒu)很多实用程(chéng)序来进行(háng)数据库(kù)管理工作,比如,我们会使用 onspace 命(mìng)令来创建(jiàn)新的数据(jù)空间,使用 oncheck 命令来对磁盘上的数据及(jí)索引进行检查。但是,这(zhè)些实用程序只能在(zài)命令行执(zhí)行,不能(néng)在 SQL 语句(jù)中进行调用,这(zhè)样,我们很(hěn)难在应用(yòng)程序中来执行数据库管(guǎn)理操作,也很难进行远程(chéng)数据库管理操作。为了解决(jué)上述问题,Informix 11 版本(běn)中增加了 admin( ) 或 task( ) 函(hán)数,DBA 现在(zài)可以通(tōng)过(guò)调用新的内置的(de) admin( ) 或 task( ) 函数通过(guò)发出(chū) SQL 语(yǔ)句(jù)就可以完成数据库管理任务了。由于是通过 SQL 语句来调用 admin( ) 或 task( ) 函(hán)数,我们还可以实现远程数据库管理任务,这(zhè)两个函数具有(yǒu)模拟相应实用程序(xù)的命令行参数的(de)参数(shù)。例如,下面的 SQL 语句相当于 oncheck -ce 命(mìng)令,它指示数据库服务(wù)器检查区段:p48红(hóng)软基(jī)地(dì)
EXECUTE FUNCTION admin('check extents');p48红软(ruǎn)基地(dì)
有些选项还可以完成(chéng)没有相应(yīng)实用程(chéng)序(xù)的任务。p48红软基地
现在,我们可以使用 EXECUTE FUNCTION 语(yǔ)句来调用内置 admin( ) 或 task( ) 函数,以完成与执行 Informix 的各种(zhǒng)管(guǎn)理实用程序等同的管(guǎn)理任务。主要包括(kuò)管理(lǐ)空间,管理配置(zhì),运行例程作业和系统验证(oncheck 功能)等(děng)方面的管理操作。p48红软(ruǎn)基地
两个内置(zhì)管理(lǐ)函数(task() 和 admin())仅在 sysadmin 数(shù)据库中可用。仅 DBSA 可(kě)运(yùn)行 task() 和 admin() 函数。但是缺省情况下,只有用户(hù) informix 可(kě)连接到 sysadmin 数据库。p48红软基地
例如,如果(guǒ) sysadmin 数(shù)据库是(shì)当前的数据库,那么以下(xià)语句执行用(yòng)于缓慢(màn)关闭数据库服务器的任务:p48红软基地(dì)
EXECUTE FUNCTION task ('onmode','k') ;如果 sysadmin 数据库不是当前的数据库,但您(nín)是有权连接到(dào) sysadmin 数据库的用户(hù),您可以执行以下命令:p48红软基地
Execute function sysadmin:task ('onmode','k');task() 和 admin() 函(hán)数(shù)提(tí)供(gòng)相同的功能;它们(men)的(de)不同仅在(zài)于(yú)返回码(mǎ)。 task() 函数返回描述命令结果的字(zì)符串。 admin() 函数返回整数,该数(shù)值和 command_history 表(biǎo)相关联。p48红软(ruǎn)基地(dì)
下边显示了 task() 和 admin() 函数运行(háng)输出结果:p48红软(ruǎn)基地
EXECUTE FUNCTION task('create dbspace', 'dbspace2', '/CHUNKS/dbspace2'); p48红软基地
 (expression) created dbspace number 2 named dbspace2p48红软基地
EXECUTE FUNCTION admin('create dbspace', 'dbspace2', '/CHUNKS/dbspace2'); p48红软基地
 (expression) 107每(měi)次尝试(shì)调用 ADMIN 或 TASK 函数都会产生两个(gè)结果:p48红(hóng)软基地
执行一个 command 任(rèn)务,通常是模拟管理实(shí)用程序 将新行(háng)插(chā)入(rù)到(dào) sysadmin 数据库的 command_history 表中。 command_history 表p48红软(ruǎn)基地
command_history 表包含(hán)管理(lǐ) API 已运行的所有命令的列表。该表还会显示命令的(de)结果。该表位于 sysadmin 数(shù)据库中,是一个 RAW(无日志记录)表(biǎo)。p48红软(ruǎn)基地
command_history 表显示(shì)管(guǎn)理任务是通过 admin() 还是(shì) task() 函数执行(háng)的,并显示执行(háng)命令的用户的相关(guān)信息、命令的执行时间、命(mìng)令,以及(jí)数据(jù)库服务器完成命令运行时返回的消息。p48红软基地
下表显(xiǎn)示 command_history 表(biǎo)信息的示(shì)例:p48红软基地
列  数据类型  描(miáo)述  p48红软(ruǎn)基地
cmd_number serial 每行的唯一(yī)标(biāo)识  p48红软基地
cmd_exec_time datetime year-to-second 命令的启动时间  p48红软基地
cmd_user varchar 执行(háng)命(mìng)令的用户  p48红软基(jī)地
cmd_hostname varchar 执行命令的主机的(de)名称(chēng)  p48红(hóng)软基地
cmd_executed varchar 所执(zhí)行(háng)的命令  p48红软基地
cmd_ret_status integer 返回码  p48红软基(jī)地
cmd_ret_msg lvarchar 返回消(xiāo)息(xī)p48红软基地
下表显示(shì)了示(shì)例命令和 command_history 表中的(de)关(guān)联结果。p48红软(ruǎn)基(jī)地
所执行(háng)的命令  返回消(xiāo)息示例  p48红软基(jī)地
set sql tracing on 对 1000 个 2024 字节的(de)缓冲区打(dǎ)开 SQL 跟踪。  p48红软基地(dì)
create dbspace 已(yǐ)添加(jiā)空间“ space12 ”。  p48红软(ruǎn)基地(dì)
检查(chá)点  检查点已完成。  p48红软基地
add log 已向数据库空间 logdbs 添加了 3 个逻辑日志(zhì)。p48红(hóng)软基地
ADMIN 或 TASK 指定的 command 任(rèn)务发生(shēng)在由于在 command_history 表中插入新(xīn)行而引起的单(dān)独事务中(zhōng)。如果命令成功执行,但(dàn)是到 command_history 中的插入(rù)操作失败(bài),那么命令将生效(xiào),而 online.log 错误条目(mù)将(jiāng)指示问题。p48红软基(jī)地
这两个(gè)函数不同之(zhī)处主(zhǔ)要(yào)在于它们的名称以及它们的返回值,返回(huí)值指示当(dāng)调用函数时将发生什么:p48红软基地
TASK 返回了在其(qí)插入(rù) command_history 表的新行中 cmd_ret_msg 列的值。此 LVARCHAR 值指示命令的(de)结果(或(huò)失(shī)败)。 ADMIN 基(jī)于(yú) ADMIN 插入 command_history 表的新行中 cmd_number 列的(de)串行值(zhí)返回了一(yī)个(gè)整数值。 p48红软(ruǎn)基地
如果该值大于 0,那么命令成功,且(qiě)新行已插入到 command_history 表中(zhōng)。 如果(guǒ)该值(zhí)等于 0,那(nà)么命令成功(gōng),但是 Dynamic Server 无法将(jiāng)新(xīn)行插入到(dào) command_history 中。 如果该(gāi)值小于 0,那(nà)么命(mìng)令(lìng)失败,但是新行(háng)已(yǐ)插(chā)入(rù)到 command_history 表中。 command 规范和任何其他的(de)参数(shù)都可以为(wéi) ADMIN 或(huò) TASK 函数定义管(guǎn)理任务。例如,等价于 oncheck -ce 命令的(de)此 SQL 语句可指导数据库服务器检(jiǎn)查扩展数据(jù)块:p48红软基地
EXECUTE FUNCTION admin('check extents');如果调用此函数时 command_history 表有(yǒu) 200 行(háng),且命令已(yǐ)成功,那么 informix 会执(zhí)行该命令并返(fǎn)回整(zhěng)数 201 。如果命(mìng)令(lìng)失败,那么此示例会返(fǎn)回值 -201 。p48红软基(jī)地
要显示命令历史记录(lù),请运行以下(xià) SQL 语句:p48红软基地(dì)
SELECT * from command_history ;比如,当我们创建了一个 dbspace2 数据空间后,系(xì)统执行成功,返回码为 108,我们可(kě)以在 command_history 表中(zhōng)查看相关(guān)信(xìn)息(xī):p48红软基地
EXECUTE FUNCTION admin('create dbspace','dbspace2', p48红软基地
'$INFORMIXDIR/SPACE/dbspace2', '20MB'); p48红(hóng)软基地
 (expression) 108p48红软基地
SELECT * FROM command_history WHERE cmd_number IN (108) p48红(hóng)软基地
 cmd_number 108 p48红(hóng)软基地
 cmd_exec_time 2005-11-17 16:26:15 p48红软基地
 cmd_user informix p48红软基地
 cmd_hostname olympia.beaverton.ibm.com p48红软(ruǎn)基地
 cmd_executed create dbspace p48红软基地
 cmd_ret_status 0 p48红软基(jī)地
 cmd_ret_msg created dbspace number 2 named dbspace2在一个固定的时间周期(qī)之后(hòu),将(jiāng)会自动除去 command_history 表中(zhōng)的任务。您可以通过(guò)更改 ph_threshold 表中的 COMMAND HISTORY RETENTION 行(háng)来修(xiū)改(gǎi)该时间周期。 COMMAND HISTORY RETENTION 参数设(shè)置数据行在 command_history 表(biǎo)中(zhōng)保(bǎo)留的时间长度。p48红软基地
您可以使用诸如 delete 或 truncate table 之类(lèi)的 SQL 命令从表中手动(dòng)除去数据。p48红软基地
您必须(xū)对 sysadmin 数据库执行 task() 和 admin() 函数。p48红软基地
task() 和 admin() 函数支持的主要管理命令(lìng)列表(biǎo)如下,具体语法(fǎ)大家可(kě)参考 Informix 信息中(zhōng)心中相关命(mìng)令语法(fǎ)内(nèi)容。p48红软基地
ADD BUFFERPOOLADD CHUNKADD LOGADD MEMORYADD MIRRORALTER CHUNK OFFLINEALTER CHUNK ONLINEALTER LOGMODEALTER PLOGARCHIVE FAKECHECK DATACHECK EXTENTSCHECK PARTITIONCHECKPOINTCLEAN SBSPACECREATE BLOBSPACECREATE CHUNKCREATE DBSPACECREATE SBSPACECREATE TEMPDBSPACECREATE BLOBSPACEDROP BLOBSPACEDROP CHUNKDROP DBSPACEDROP LOGDROP SBSPACEDROP TEMPDBSPACEONMODEPRINT ERRORPRINT PARTITIONQUIESCENTRENAME SPACESET CHUNK OFFLINESET CHUNK ONLINESET DATASKIP ONSET DATASKIP OFFSET SBSPACE ACCESSTIME ONSET SBSPACE ACCESSTIME OFFSET SBSPACE AVG_LO_SIZESET SBSPACE LOGGING ONSET SBSPACE LOGGING OFFSET SQL TRACINGSET SQL TRACING OFFSET SQL TRACING ONSET SQL TRACING RESIZESET SQL USER TRACINGSET SQL USER TRACING CLEARSET SQL USER TRACING OFFSHUTDOWNSTART MIRRORING spaceSTOP MIRRORINGp48红软(ruǎn)基地(dì)
行数据压(yā)缩及存储优化(huà)技(jì)术 p48红软基地
我们知道,从 Informix 11.5 xC4 开始(shǐ),Informix 数据库提供了行压缩技术,它采用一种静态的基于字典的压缩算法,将表(table)或表分(fèn)区(qū)(table fragments)中的数据行中重复的数(shù)据(jù)模(mó)式映射到一个占(zhàn)用空间较少的符(fú)号,从而减少表格或(huò)表分区数据的总大小。这些重复(fù)的(de)数据(jù)模式不仅可(kě)以是一列中(zhōng)的数据(jù),也可以是一列中的部(bù)分数据,甚至(zhì)可以是跨(kuà)数据列的数据。通过采用(yòng)行压缩技术,Informix 11.5 可以节省高(gāo)达 80% 的(de)存(cún)储空间(jiān)。同时(shí),由于数据是采用压缩方式存储,I/O 读取效(xiào)率(lǜ)会有 20% 左(zuǒ)右(yòu)的提高(gāo),内存使用(yòng)效率会更高,数据库备份及恢复的时间也(yě)得到相应的减少。p48红软基地
关于非阻塞检查点技术的(de)特点及技(jì)术实现,请参(cān)考文(wén)章“ Informix 11.5 行(háng)数据(jù)压缩及存储优化技术应用实(shí)践”。p48红软(ruǎn)基(jī)地
使用 ontape 备份(fèn)数据到指(zhǐ)定目录中 p48红软基地
从 Informix 11 版本开始,ontape 命令(lìng)可以将(jiāng)数据及日志备份到目录中,ontape 命令将在该目录下自动为(wéi)备份数(shù)据及日志建(jiàn)立新的文件。你(nǐ)可以通过设置 TAPEDEV 及 LTAPEDEV 参数指向(xiàng)一个目录来(lái)实现。使(shǐ)用(yòng) ontape 命令(lìng)将(jiāng)数据及(jí)日志备份到目录中 , 可以为我们带来如下好处(chù):p48红软基(jī)地
多个实例可以(yǐ)同时备份到相同(tóng)的目录下 可以通(tōng)过(guò)操作系统(tǒng)工具对数据进(jìn)行压缩等(děng)操作 当日志文件填满后(hòu),可(kě)以配置系统自动备份(fèn)该日志文(wén)件 使用时,你必须对该(gāi)目录拥有(yǒu)写权限,并保(bǎo)证有足够的空间保存备份数据。p48红软基地
在使用 ontape 命(mìng)令可以将数据及日志备(bèi)份到目录时,我们要选择 -y 选项关(guān)闭 ontape 的交互提示信息。p48红软基地
下边例子用(yòng)来执行(háng) 0 级备份:p48红软基地
ontape -s -L 0 -y备份到目录中的数据文件(jiàn)名(míng)的格式为:hostname_servernum_Ln ;而日志文件的文件名为(wéi) hostname_servernum_Lognnnnnnnnnn 。p48红软基地
当我们为 TAPEDEV 和 LTAPEDEV 指定目录时,可以使(shǐ)用(yòng) IFX_ONTAPE_FILE_PREFIX 环境变量(liàng)来指定(dìng)备份文件名(míng)的(de)前(qián)缀(替换 hostname_servernum 格式)。p48红软基地
如果将 IFX_ONTAPE_FILE_PREFIX 的(de)值设置为 My_Backup,那么备(bèi)份(fèn)文(wén)件名具有以下名称:p48红软(ruǎn)基地
My_Backup_L0My_Backup_L1My_Backup_L2My_Backup_Log0000000001My_Backup_Log0000000002我们可以(yǐ)使用下(xià)述命(mìng)令设置 IFX_ONTAPE_FILE_PREFIX 环境变量:p48红软(ruǎn)基(jī)地
>>-setenv--IFX_ONTAPE_FILE_PREFIX--string---------------------->另外(wài),我们还可以在目录中创建连续逻辑日(rì)志文(wén)件备份(fèn)。如果(guǒ)空间可用(yòng),逻辑日志将(jiāng)自动备(bèi)份。 设置过程如下:p48红软基地
将(jiāng) LTAPEDEV 参数设(shè)置为(wéi)现(xiàn)有(yǒu)目录。 p48红软基地
在 UNIX 上将 ALARMPROGRAM 参(cān)数设置为 log_full.sh 的完整路(lù)径,在 Windows 上将 ALARMPROGRAM 设置为 log_full.bat 的完整(zhěng)路径(jìng)。 p48红软(ruǎn)基(jī)地
将 ALARMPROGRAM 参数中的(de)备份(fèn)程序从 onbar -b -l 更改(gǎi)为 ontape -a -y 。 p48红软基地(dì)
重(chóng)新启动数据库服务器(qì)。 p48红软基地
SQL 下钻查询特性 p48红软基地
在 SQL 语(yǔ)句性能监控时,我(wǒ)们(men)经常要了(le)解 SQL 语句(jù)执行了多长(zhǎng)时间; SQL 语句(jù)运行时占用(yòng)了多少系统资源,如 CPU 占用情况、内存占用(yòng)情况、磁(cí)盘 I/O 读写情况(kuàng); SQL 语句等待系统资源如磁盘 I/O 及锁的时间及次数等。通过 SQL 语句对系统的资源使用及等(děng)待情(qíng)况,我们可以了解到 SQL 语句运(yùn)行的瓶颈,并及(jí)时(shí)调整系统资源配置,或者(zhě)调整用户的应用程序。我们虽然可以(yǐ)使用 set explain 命令帮助我(wǒ)们了解一些 SQL 语句性能问题,但是当我们(men)启(qǐ)用 SET EXPLAIN 功能(néng)时,SQL 语句性能(néng)可能已(yǐ)经出现了问题,为了能(néng)够让 DBA 更及时、更详细(xì)地了解 SQL 语句的资源使用情况并做出相(xiàng)应(yīng)的调整,在 Informix 11 版本中,提供(gòng)了 SQL 下钻查询特(tè)性来满(mǎn)足上述功能。p48红软基地
关(guān)于 SQL 下钻查(chá)询特性的技术特点、使用范围及技术实(shí)现,请参(cān)考发表在 developerWorks 中国(guó)网站 Information Management 专区中(zhōng)文章“ Informix 11.5 SQL 语句性能监控方法及(jí)实(shí)现 ”中的(de)相(xiàng)关内容。p48红软基地
--------------------------------------------------------------------------------p48红(hóng)软基地(dì)
回(huí)页首p48红软基(jī)地(dì)
数据库(kù)性能方面的一(yī)些实用特性 p48红软基地
非(fēi)阻塞检查点 p48红软基(jī)地(dì)
在(zài) Informix 数据库使用过(guò)程中(zhōng),当发生检查点操作时,会阻塞数据库应用程序的运(yùn)行(háng),直到检查点操作完成为止。这样,会显著降低数据库的性(xìng)能。这时,我们往往需要(yào)调(diào)整(zhěng)数(shù)据库参数来减少检查点操作对系统性能的(de)影响,但这种调(diào)整往(wǎng)往比(bǐ)较复杂(zá),很难达(dá)到最优效果。为了解决上述问题,Informix 11 提(tí)出了非阻塞检查点技术,采用该技术后,检(jiǎn)查点操作不再阻塞数(shù)据库应用程(chéng)序的运(yùn)行,系统效率得到显著的提(tí)高,也(yě)不再(zài)需要进(jìn)行复杂的数(shù)据库调整操(cāo)作。p48红软基地
关于非(fēi)阻塞(sāi)检查点技术(shù)的(de)特(tè)点及技术实现,请参考(kǎo)文(wén)章“ Informix 11 非阻塞检查点及 RTO 策略(luè)应用实践”。 p48红(hóng)软基(jī)地
已落实读取隔离(lí)的并行性增强(LAST COMMITTED)p48红软(ruǎn)基地
在 Informix 中,当用户在对一行或多行数据(jù)进行(háng)修改,另(lìng)外用户要(yào)对相同数据进行读操作时(shí),会出现锁等待(Lock Wait)现象,该用户要等到锁(suǒ)释(shì)放才可以继续操作。这会影(yǐng)响应(yīng)用程序的(de)效率(lǜ)。特别是在 OLTP 系统(tǒng)中(zhōng),还(hái)容易产生死锁(Deadlocks)现象(xiàng),影(yǐng)响系统的运行效率。为了提(tí)高(gāo)应用程序效率(lǜ),我(wǒ)们往往要调整 lock timeout 参数,将(jiāng)其设置(zhì)为 30-60 秒(miǎo),当锁等(děng)待超(chāo)时后,中(zhōng)断该(gāi)会话(huà)。另外,有些用户可能会将隔(gé)离级别设置为脏读(dú),但对(duì)于有大量 update 操(cāo)作的应(yīng)用,这种隔离(lí)级别会读取幻象数据(phantom data),数据准确(què)性不能得到保证。p48红软基地
如下(xià)面例子,采用(yòng) committed read 隔离(lí)级别,会产生锁(suǒ)等待现象。p48红软基地(dì)
begin work; p48红(hóng)软基地
 create table tab(col1 int, col2 int) lock mode row; p48红软基地
 insert into tab values(10,11); p48红软基地(dì)
 insert into tab values(20,21); p48红软基地
 commit work;p48红软基地
session 1: p48红软基地
 -------------- p48红软基地
 begin work; p48红软(ruǎn)基地
 update tab set col2=99 where col1=10;p48红软基地
session 2: p48红(hóng)软基地
 -------------- p48红(hóng)软基地
 begin work; p48红软基地
 set isolation to committed read ; p48红软(ruǎn)基地
 select * from tab where col1=10;p48红(hóng)软基地(dì)
244:Could not do a physical-order read to fetch next row. p48红软基地
 107: ISAM error: record is locked.如下面例子,采(cǎi)用 committed read 隔离级别,会产生死锁现象。p48红软基地(dì)
begin work; p48红软基地
 create table tab(col1 int, col2 int) lock mode row; p48红软基(jī)地
 insert into tab values(10,11); p48红软基(jī)地
 insert into tab values(20,21); p48红软基地
 commit work;p48红软基地
session 1: p48红软基地
 -------------- p48红软基地(dì)
 begin work; p48红软基地
 set lock mode to wait; p48红软基地
 update tab set col2=99 where col1=10; p48红(hóng)软基地
 select * from tab where col1=20;p48红软基地
session 2: p48红软基地
 -------------- p48红软基地
 begin work; p48红软(ruǎn)基地(dì)
 set lock mode to wait; p48红软基地
 update tab set col2=99 where col1=20; p48红软基地
 select * from tab where col1=10;为了解决上述问题,提高应用(yòng)系统并发执行效率,Informix 11 提(tí)供已落实读(dú)取隔离的并行性增强功能,通过为 SET ISOLATION TO COMMITTED READ 语句引(yǐn)入(rù)了新的 LAST COMMITTED 关键字选项,可减少(shǎo)尝试读取表时发生锁定冲突的风险(xiǎn)。采用(yòng)该语句,当(dāng)用户读取正在被其(qí)他(tā)用户(hù)修改的数据时不在处于锁(suǒ)等待状态,而(ér)是可以读(dú)取修改前最(zuì)近落实版本(běn)的数(shù)据值(zhí)。 这(zhè)样,由于不会产生锁(suǒ)等待,应用(yòng)程(chéng)序效率会显著提(tí)高,而且,由于是(shì)读取修改前最近落实版(bǎn)本的数据(jù)值,也不会产生读(dú)取幻象数(shù)据(phantom data)的问题,同时,也会大大减少产生死锁的现象。p48红(hóng)软基(jī)地
如下面例子(zǐ),当采用 committed read last committed 隔(gé)离级别后,用户将读(dú)取修改前最近落实版本的数据值(zhí),不会产生锁等待现象。p48红软基地
begin work; p48红软基地
 create table tab(col1 int, col2 int) lock mode row; p48红软基地
 insert into tab values(10,11); p48红软(ruǎn)基地
 insert into tab values(20,21); p48红(hóng)软基地
 commit work;p48红软基(jī)地
session 1: p48红软基地
 -------------- p48红软基地
 begin work; p48红软基地
 update tab set col2=99 where col1=10;p48红(hóng)软基地
session 2: p48红软基地(dì)
 -------------- p48红(hóng)软基地
 begin work; p48红软基地
 set isolation to committed read last committed; p48红软(ruǎn)基地
 select * from tab where col1=10;p48红软(ruǎn)基地
C1 C2p48红(hóng)软(ruǎn)基地
10 11我们可以通过以下几种方法来提(tí)高使用(yòng)“已落实读”、“脏读(dú)”、“读已落实”或(huò)“读未(wèi)落(luò)实”隔离(lí)级别的会(huì)话中的并行性能:p48红软基地(dì)
使(shǐ)用 Set Isolation to Committed Read Last Committed 语(yǔ)句 通(tōng)过设(shè)置新的 USELASTCOMMITTED 配置参(cān)数扩展到脏读(Dirty Read)、未落实读取(Read Uncommitted)和已落实读取(Read Committed)隔(gé)离级别。 USELASTCOMMITTED 选项可具(jù)有以下四个值中的任意一个:p48红(hóng)软基地(dì)
如(rú)果值为“ COMMITTED READ ”,那么当数(shù)据库服务器尝试读取处于“已落实读”或“读已落实”隔(gé)离级(jí)别的行而遇到互(hù)斥锁(suǒ)时,它(tā)将读取最近落实的数据版本。 p48红软基地
如(rú)果值(zhí)为“ DIRTY READ ”,那么当数据库服务器尝试读取处于“脏读”或(huò)“读已落实”隔离级别的行而遇到互斥锁时,它将读取(qǔ)最(zuì)近落实的数据版(bǎn)本。 p48红软基地
如(rú)果值为“ ALL ”,那么当数据库服务器尝试读取(qǔ)处(chù)于“已落实(shí)读”、“脏读”、“读已落(luò)实”或(huò)“读未(wèi)落实”隔离级(jí)别的行而(ér)遇到互斥锁时,它将读取最近落实的数据版本。 p48红软(ruǎn)基地(dì)
如果值为“ NONE ”,那么此值将禁用可访问已锁(suǒ)定行中上次(cì)落实的数据版(bǎn)本(běn)的 USELASTCOMMITTED 功(gōng)能。在此设置下(xià),如果会(huì)话在尝试读取处于“已(yǐ)落实读”、“脏读(dú)”、“读已落实”或(huò)“读未落实(shí)”隔离级别的行(háng)时(shí)遇到互斥锁,那(nà)么(me)在落实或回滚持有互斥锁的并发(fā)事务之前,事务(wù)不能读(dú)取(qǔ)该(gāi)行。 p48红软基地(dì)
SET ENVIRONMENT USELASTCOMMITTED 语(yǔ)句 SET ENVIRONMENT 语句可以在运行时指定影响相同例程中随后提交的(de)查询的选项。 SET ENVIRONMENT USELASTCOMMITTED 可指定遇到由(yóu)其他会(huì)话持有(yǒu)的互斥锁的查询和其他操作(zuò)在更改数据(jù)值(zhí)时是否应使用(yòng)最近落实的(de)数据版本,而不是等(děng)待锁被释放。p48红软基地(dì)
此(cǐ)语(yǔ)句在执(zhí)行当前会话期间可覆盖 USELASTCOMMITTED 配置参数设(shè)置。您可以使用 SET ISOLATION 语句来覆盖 USELASTCOMMITTED 会话环境设置。p48红软基地
例如,以下语句指定“已落实读”隔离方式(shì),并将系统缺省 USELASTCOMMITTED 配置参数设置(zhì)替换(huàn)为读取最近落(luò)实(shí)的数据版本(数据位于并(bìng)发阅读器持有互斥(chì)锁的行中)的设(shè)置。p48红软基(jī)地(dì)
SET ISOLATION COMMITTED READ; p48红软基地
 SET ENVIRONMENT USELASTCOMMITTED 'ALL';任何 SPL 例程都可使用这些语句在(zài)会话期(qī)间指定(dìng)“已落实(shí)读上次已(yǐ)落实”事务隔离级别(bié)。这些语(yǔ)句启用读取数据的 SQL 操作,从(cóng)而(ér)在执行读取行的操作期间遇到互斥(chì)锁时使用上次落实的版本。当另(lìng)一个会话尝试(shì)修(xiū)改同一行时,这样可避免死(sǐ)锁情况或(huò)其(qí)他锁定错误。p48红软基地
例如,PUBLIC.sysdbopen 或 user.sysdbopen 过程(chéng)中的以下语句在(zài)连接时指定“已(yǐ)落实(shí)读”隔离(lí)方式,并将显(xiǎn)式(shì)或缺省 USELASTCOMMITTED 配置参数设置替换为读取表(biǎo)(其(qí)中并发阅读器持有互(hù)斥(chì)锁(suǒ))中最近落实的数据版本的设置:p48红(hóng)软基地
create procedure PUBLIC.sysdbopen() p48红软基地
 SET ISOLATION COMMITTED READ; p48红软基地
 SET ENVIRONMENT USELASTCOMMITTED 'ALL'; p48红(hóng)软基(jī)地
 end procedure;除 sysdbopen( ) 之(zhī)外(wài),任何 SPL 例程(chéng)都(dōu)可使用这些语句(jù)在会话期间指定“已落(luò)实读上次已落实”事务隔离级别。这些语句(jù)启用读取(qǔ)数据(jù)的 SQL 操作以在执行读取表的操作期间遇到互斥锁时使用上次落实的版本。当(dāng)另一个会(huì)话尝试修改同一个行(háng)或表时,这样可(kě)避免死锁情况或其他(tā)锁定错误。p48红软基地
当启用 LAST COMMITTED 选项后, onstat 命令的输出也进行(háng)了相(xiàng)应的变化:p48红(hóng)软(ruǎn)基地
-k 选项(xiàng)增加(jiā)了新的内容 -x 选项(xiàng)增加了“ LC ”作为隔离级别 “ -g sql ” 选项增加了“ LC ”作为隔(gé)离级别 该功能(néng)支持(chí) B 树索引和函数型索引,但不支持 R 树索(suǒ)引。它只支持“行”级别锁定,它不支持(chí)以下这些表:正在被 DataBlade 模块访问的表、列中(zhōng)具有(yǒu)集合数据类型(xíng)的表(biǎo)、使用虚拟表界(jiè)面创建的表、具有页面级别锁定的(de)表、具有专用表级别锁(suǒ)定的表或无事务记录的数据库中的表(biǎo)。 它也不支持 HDR Secondary 。p48红软基地
在跨服(fú)务器的分布式(shì)查询(xún)中(zhōng),如果发出查询(xún)的会话的隔(gé)离级别具(jù)有有效(xiào)的(de) LAST COMMITTED 隔离级别(bié),但一个(gè)或多个参与(yǔ)操作(zuò)的数据库不支持该 LAST COMMITTED 功(gōng)能,那么整(zhěng)个事务符合发出该事务的会话的(de)“已落(luò)实读”或“脏读”隔离级别,而不启用 LAST COMMITTED 选项。p48红软基地
在 UNIX 上(shàng)用 direct I/O 提高 cooked 文件的(de)性能 p48红软基地
在 Informix 11 中,随着 direct I/O 特(tè)性的(de)引入,可以提高用(yòng)于常规(guī)数据库空(kōng)间块的(de) cooked 文件的 I/O 性能(néng)。使用文件系统的 I/O 通常慢于(yú)使用原始设备(bèi)的(de) I/O 。这是因为通(tōng)过文件系统(tǒng)进行读写有附加的开销(xiāo)。这增加了(le)另一层的工(gōng)作。此外(wài),可(kě)能存在(zài)一(yī)个缓冲系统。这种缓冲(chōng)会降低性能,而 IDS 不能控制(zhì)操作(zuò)系(xì)统的这(zhè)个子系(xì)统(tǒng)。 Direct I/O 可(kě)以绕过文件系统层,包括任何缓冲,因(yīn)此读和写的效率更高(gāo)。可以使用(yòng) DIRECT_IO 配置参数启用 direct I/O 。 cooked 文件的性(xìng)能可以接近用于数据库空(kōng)间块的原(yuán)始设备(bèi)的性能。p48红软(ruǎn)基地
DIRECT_IO 不能(néng)用(yòng)于(yú)临时数据库空间,只(zhī)能用于常规的(de)数据库空间块。文件系(xì)统和操作系统必须支持给定页大小的 direct I/O 。对于(yú)原始设备,不支持(chí) direct I/O 。对于原(yuán)始设备上的块,更可取的 I/O 方(fāng)法是 KAIO(kernel asynchronous I/O) 。p48红软基地
DIRECT_IO ONCONFIG 参数(shù):p48红软基地(dì)
DIRECT_IO 设置  描述  p48红软基地
0 Direct I/O 被关闭  p48红软(ruǎn)基地(dì)
1 Direct I/O 被打(dǎ)开p48红(hóng)软基地
注意(yì): 有些操作系统(tǒng)启用 direct I/O,并且实(shí)现使用 KAIO (kernel asynchronous i/o) 。如果启用了 direct I/O,数据(jù)库(kù)服务器会尝试使用(yòng) KAIO 以(yǐ)完成(chéng)这(zhè)项工作。如果(guǒ)启用了 KAIO,可以减少 AIO 虚拟处(chù)理器的数量。这里假设 KAIO 已(yǐ)被启用(KAIOOFF 在环境中没有(yǒu)被设(shè)置)。p48红软基地
Windows 不支持 DIRECT_IO ONCONFIG 参数,因为在 Windows 平台上 direct I/O 是默认被启用的。p48红(hóng)软基地(dì)
使用非日志记录(lù)原始表(RAW TABLE)p48红软(ruǎn)基地
在 Informix 数据库(kù)中,如果采用日志模式的数据库(kù),那么当对表进行大批量(liàng)数据装载时,会(huì)消(xiāo)耗大(dà)量的日志(zhì),如(rú)果没有合(hé)适大小的日志空(kōng)间,可能造成日志用满而挂起(qǐ)的问题(tí)。从 Informix 9.2 开始,您可在(zài)日志记录(lù)数据库中使用非日志(zhì)记录原始表(raw table)来加快最初的装(zhuāng)入(rù)和数据验证(zhèng)。数(shù)据仓库及(jí)其他应用(yòng)程序可(kě)能具有非常大的表,需要很(hěn)长的装入时间。装入非日(rì)志(zhì)记录表比(bǐ)装入日志(zhì)记录表要快(kuài)。p48红软基地
RAW 表(biǎo)是非(fēi)日志记录永久(jiǔ)表(biǎo)并且类似于(yú)非日志记录数据库中的表。 RAW 表使用轻附加,这会将行快速添加到每个表分段的末尾。支持但不记录 RAW 表(biǎo)中的(de)更(gèng)新、插入(rù)和删除。 RAW 表不支(zhī)持引用约束(shù)、唯一约束(shù)和回滚。如果从上(shàng)次物理备份后还未更新 RAW 表,那么可以从该(gāi)次备份(fèn)中恢复(fù)该(gāi)表(biǎo)。快速恢复将回滚 STANDARD 表(但非 RAW 表)上未完成的事务。无论是存储在日志记录(lù)数据库还是非日志记录数据库中,RAW 表的属(shǔ)性都相同(tóng)。p48红软基地
要创(chuàng)建用于装入的非日志记录表,您可使用 CREATE RAW TABLE 语(yǔ)句或 ALTER TABLE 语句将表类型从 STANDARD 更改为 RAW 。 RAW 类型的(de)表不允许引用约束,这样最初(chū)的装入就比 STANDARD 类型的表要快。原始表的装入完成后,您可通(tōng)过将(jiāng)表类型更改(gǎi)为 STANDARD 来将其更改为(wéi)日志记录表(在日志(zhì)记(jì)录数(shù)据库中)。然后可使(shǐ)用 ALTER TABLE 语句将引用约束添加到表中并使用(yòng) CREATE INDEX 语句来添(tiān)加索引。p48红(hóng)软基地
下面例子显示了(le) raw table 创建的方法:p48红软(ruǎn)基地
create raw table xyz p48红软基地
 ( col1 INT, col2 CHAR(10) p48红(hóng)软基地
 ) p48红软(ruǎn)基地(dì)
 in dbspace {fragment by whatever};p48红(hóng)软(ruǎn)基地
orp48红软基(jī)地
alter table xyz type raw ;下(xià)面例子显示了 raw table 恢复为 standard table 的方法p48红软基地
alter table xyz type standard ;要装入原始表(biǎo),您可使用任(rèn)何(hé)数据装入实用(yòng)程(chéng)序,例如快(kuài)速方式的 dbimport 或 HPL 。装入数据后,请执行 0 级(level-0)备(bèi)份(fèn)。修(xiū)改原始表中的任何(hé)数据或在事务中使用它之前,请将表类(lèi)型更改为 STANDARD 。p48红软基地
如果在原始表(biǎo)的(de)装入期(qī)间发生错(cuò)误或故(gù)障,结果数据将是故障时留在磁盘上的(de)任何数据。p48红软基地
dbexport 和 dbschema 实用程序支持(chí) CREATE RAW TABLE 和 ALTER TABLE...TYPE(RAW)语(yǔ)句。p48红软基地
注意:请勿(wù)在(zài)事务中使用 RAW 表。在已装入数据后,请首先使用 ALTER TABLE 语(yǔ)句将表更(gèng)改为 STANDARD 类(lèi)型并执行 0 级备份,然后(hòu)再在事务中使用(yòng)该表。p48红软基地
--------------------------------------------------------------------------------p48红软(ruǎn)基地(dì)
回页首p48红软基地
数据库(kù)应用开发(fā)方面的一些实用(yòng)特性 p48红软基地
会话配置例程(Session Configuration Routines)p48红软基(jī)地
在(zài) Informix 11 版本中,新增(zēng)加了(le) sysdbopen( ) 和 sysdbclose( ) 内置 SPL 过程(chéng),使数据库管理员能在用户连接到数据库或从数据库断开连接时,自动执行相关的 SQL 和 SPL 语句。通过使用这两个 SPL 过程,我们可以(yǐ)在连接或访问时更改数据库服务器会话的属(shǔ)性(xìng),而不更改会话(huà)所运行的应用程序。这样,对于那些不能通过修改(gǎi)应用程序的源(yuán)代码来(lái)设置环(huán)境(jìng)选(xuǎn)项(或环境变量)或(huò)包(bāo)含与会话相关的 SQL 语(yǔ)句(例如(rú),由于 SQL 语句包含(hán)从(cóng)供应(yīng)商处获得的代(dài)码(mǎ))的情况,该操作(zuò)非常(cháng)有用。同样(yàng),对于(yú)自动(dòng)化应用(yòng)程(chéng)序终止之后需要执行的操作,主要(yào)是清除操作,这两个程序也很有用。p48红软基地
如果(guǒ) DBA 将用户的登录标识(shí)指定(dìng)为名称是 sysdbopen( ) 的过(guò)程的所有者,当指(zhǐ)定(dìng)用户连接到数据库或从数据库(kù)断开连接时(shí),Informix Dynamic Server 会(huì)执行该过程。如果 DBA 将(jiāng) PUBLIC 指定(dìng)为所有者(zhě),当不是(shì)任何这些内置会话配置(zhì)过程所有者(zhě)的(de)用(yòng)户连接到数据库时,会自动(dòng)执行该(gāi)例程。同样(yàng),当已连(lián)接到数据库(kù)的(de)用户执行引用其他数据库中对象的分布式操作(zuò)(如跨数据库(kù)或跨服务器(qì)查询)时,不(bú)会调用 sysdbopen( ) 例程(chéng)。p48红软基地
同样,如果没有为该用户在数据库中注(zhù)册 user.sysdbclose( ),当该用户关(guān)闭与数(shù)据库的连接时(shí),将会自动调用(yòng)另一内置过(guò)程 user.sysdbclose( ) 或 public.sysdbclose( ) 。p48红软基(jī)地
如果要更改会话的(de)属性,可为各种数据库设(shè)计定制 sysdbopen( ) 和 sysdbclose( ) 过程(chéng)以(yǐ)支(zhī)持特定用户或 PUBLIC 组的(de)应用程序。 sysdbopen( ) 和(hé) sysdbclose( ) 过程可包含数据库(kù)服务(wù)器在数据库(kù)打(dǎ)开或关闭时为用户或 PUBLIC 组执行的一(yī)系列 SET、SET ENVIRONMENT、SQL 或 SPL 语句。p48红软基地
例(lì)如,对于 user1,可定义包含 SET PDQPRIORITY、SET ISOLATION LEVEL、SET LOCK MODE、SET ROLE 或 SET EXPLAIN ON 语句的过程,无论(lùn)何(hé)时 user1 使(shǐ)用 DATABASE 或 CONNECT TO 语句打开数(shù)据库时,这些过程都将执行(háng)。p48红软基地
sysdbopen( ) 过程中由 SET ENVIRONMENT 语句指定的会话环境(jìng)变量 PDQPRIORITY 和 OPTCOMPIND 的任何设置(zhì)都将在整(zhěng)个会话期间保持。对于常(cháng)规(guī)过程非持久的 SET PDQPRIORITY 和 SET ENVIRONMENT OPTCOMPIND 语句,在 sysdbopen( ) 过程包(bāo)含(hán)它们时将保持。p48红软基地
当作为过程所(suǒ)有者的用(yòng)户从数据库断开连接时,将(jiāng)运行 user.sysdbclose( ) 过程(或者(zhě)此时将运行 PUBLIC.sysdbclose( ),前提是此过程存在且当前用户不具有(yǒu)任何 sysdbclose( ) 过(guò)程)。p48红(hóng)软(ruǎn)基地
使用 sysdbopen( ) 和 sysdbclose( ) 内置 SPL 过程的(de)先决条件:只有 DBA 或用户 informix 能够在 SQL 的 ALTER PROCEDURE、ALTER ROUTINE、CREATE PROCEDURE、CREATE PROCEDURE FROM、CREATE ROUTINE FROM、DROP PROCEDURE 或 DROP ROUTINE 语句(jù)中创(chuàng)建或(huò)更(gèng)改 sysdbopen( ) 或(huò) sysdbclose( ) 。p48红软基地
设置(zhì) sysdbopen() 和 sysdbclose() 过程以配置会话(huà)属性的基本(běn)操作步骤:p48红软基地
将 IFX_NODBPROC 环境变量(liàng)设(shè)置(zhì)为任(rèn)何值(包括(kuò) 0)以使(shǐ)数(shù)据库服务器绕过和防止 sysdbopen( ) 或 sysdbclose( ) 过程的执行。 p48红软基地
编写 CREATE PROCEDURE 或 CREATE PROCEDURE FROM 语(yǔ)句以(yǐ)定义特定用户或 PUBLIC 组的过程(chéng)。 p48红软基地(dì)
测试过程(chéng)(例(lì)如,通过使用(yòng) EXECUTE PROCEDURE 语句中的 sysdbclose( ))。 p48红软基地
取消设置 IFX_NODBPROC 环(huán)境变量以使数据库服(fú)务器能够运行 sysdbopen( ) 或 sysdbclose( ) 过(guò)程(chéng)。 p48红软基地
下(xià)面的(de)程(chéng)序为特定用户(hù) usr1 设置角色,并将隔离级别设为 committed read 。p48红软基地(dì)
create procedure usr1.sysdbopen() p48红软基地
 set role oltp; p48红软基地
 set isolation to committed read; p48红软基地
 end procedure;这样,当用户 usr1 通过 DATABASE 或 CONNECT 语句连接到数(shù)据(jù)库(kù)时,将(jiāng)设置 oltp 角色,并(bìng)将隔离级别(bié)设为 committed read 。p48红软(ruǎn)基地
下面的程序设置 PUBLIC 组的角色和 PDQ 优先级。p48红软基地(dì)
create procedure public.sysdbopen() p48红软基地
 set role others; p48红软基地
 set pdqpriority 1; p48红软(ruǎn)基地
 end procedure;这样,当用(yòng)户通过 DATABASE 或 CONNECT 语句连接(jiē)到数据库时,如果没有为该用户创建自己(jǐ)的 sysdbopen( ) 过程,他将执(zhí)行(háng) public.sysdbopen() 过程(chéng),设置 oltp 角色,并将 PDQ 优先(xiān)级设为 1 。p48红软基(jī)地
下面的程(chéng)序为 PUBLIC 组创(chuàng)建 sysdbclose() 过程。p48红软(ruǎn)基(jī)地
CREATE PROCEDURE public.sysdbclose() INSERT INTO logit p48红软基地
 VALUES(USER, “ O “ ,CURRENT::DATETIME YEAR TO SECOND); p48红软基地
 END PROCEDURE;这样(yàng),当用户(hù)断开(kāi)数据(jù)库连接时,如果没有为该用户(hù)创建自(zì)己(jǐ)的 sysdbclose() 过程,他将执行(háng) public.sysdbclose() 过程,将用户信(xìn)息、操作(zuò)状(zhuàng)态(tài)及相(xiàng)应的时间戳的信(xìn)息保存(cún)到 logit 表(biǎo)中。p48红(hóng)软(ruǎn)基地
Disabling logging for temporary tablesp48红软(ruǎn)基(jī)地
在(zài) Informix 数据库中,我(wǒ)们经常会创建一些临时表来处理(lǐ)应用(yòng)中的(de)临(lín)时信息(xī)。系统可以采(cǎi)用如下两种方(fāng)式(shì)创建临(lín)时表:p48红软基地
使用 SELECT INTO TEMP 语句隐含地(dì)创(chuàng)建临时表 使用(yòng) CREATE TEMP TABLE 语句显示地创建临(lín)时表 如果数据库(kù)采用非日志模式,DBSPACETEMP 环(huán)境变量或配置参数设置后(hòu),临时表会自动创建在(zài)由(yóu) DBSPACETEMP 环(huán)境变量或配置参数指定的数据空(kōng)间上;如果数据库采用日志(zhì)模(mó)式,那么创建的临时(shí)表缺省情况下是记日志(zhì)的,不会被创建在(zài)由 DBSPACETEMP 环境变(biàn)量或配置参数指定(dìng)的数据空间上,那么(me)由 SELECT ... INTO TEMP 语(yǔ)句创建的临时表将被创(chuàng)建(jiàn)在(zài)根数据(jù)空间(Root dbspace)上,由(yóu) CREATE TEMP TABLE 语句(jù)创(chuàng)建的临时表(biǎo)将被创建在数据库所(suǒ)在的数据空间上。如(rú)果希望(wàng)临时表(biǎo)创建在由(yóu) DBSPACETEMP 环境变量或配置参数指定的数据空间上,我们(men)需要使用 SELECT INTO TEMP with no log 语(yǔ)句或 CREATE TEMP TABLE with no log 语句来创建临时(shí)表。p48红(hóng)软基地
下边例子显示了在日志模式数据库(kù)中创建临时表的方法(fǎ):p48红软基地
$ export DBSPACETEMP=dbs1,dbs2p48红(hóng)软(ruǎn)基地
SELECT number FROM account INTO TEMP tp1p48红软基地
Use with a logged database: p48红(hóng)软基地(dì)
 Temp table tp1 is created in the rootdbs:p48红软基地(dì)
SELECT number FROM account INTO TEMP tp2 WITH NO LOGp48红软基(jī)地
Temp table tp2 is fragmented across dbs1,dbs2:临时(shí)表(biǎo)按照如下优先顺序创建在(zài)相应的数据空间(jiān)上:p48红软基(jī)地
由 DBSPACETEMP 环境变(biàn)量指定的数据空间 由 DBSPACETEMP 配置参数指定的数据空(kōng)间 如果设置了 DBSPACETEMP 环境变量,那么临时(shí)表会创建在(zài)由 DBSPACETEMP 环境变(biàn)量指定(dìng)的数据空(kōng)间上,如果没有设置(zhì) DBSPACETEMP 环境变量,那么临时表会创建在由 DBSPACETEMPP 配置参数(shù)指(zhǐ)定的数据空间(jiān)上。p48红(hóng)软(ruǎn)基地
出于性能考虑(lǜ),一般我(wǒ)们建议在多个物理(lǐ)磁盘上创建(jiàn)多个临(lín)时表空间,这样,当创建临时表时,它会分片到所有临时表空间上(shàng),提高并发处(chù)理效率。p48红软基地
在采用日志模式的数据库(kù)中,对临时表(biǎo)的所有 DML 操作都要记(jì)日志,而(ér)且(qiě)不加 with no log 选项,临时表不会(huì)创建在由 DBSPACETEMP 环(huán)境变量或配(pèi)置参数指定的临时(shí)数据(jù)空(kōng)间(jiān)上(shàng),往往数(shù)据会(huì)写到根数据空(kōng)间(Root dbspace)上(shàng),影响系统(tǒng)性(xìng)能,而且(qiě)用户在创(chuàng)建(jiàn)临时表时,往往总是忘记 with no log 选项。为了(le)解决上述问题,Informix 11 版本开始提供了关闭对临时(shí)表记日志的(de)方法,这样,建临时表时(shí),即使没加 with no log 选项,临时表也(yě)会创建在由 DBSPACETEMP 环境变量或配置参数指定的临时数(shù)据空间(jiān)上(shàng)。p48红软基(jī)地
我们可以采用下述两种方法来关闭(bì)对临时表记日志:p48红软基地
修改 onconfig 配置参数 TEMPTAB_NOLOG 1通过 onmode 命令动态改变 onmode -Wf "TEMPTAB_NOLOG =1" p48红软基地
 onmode -Wm "TEMPTAB_NOLOG =1"其中,-Wm 选(xuǎn)项改变参数值后立(lì)即生效; -Wf 选项改变参数值后立(lì)即生效,同时将新的参数值写(xiě)到(dào) onconfig 配置文件中(zhōng)。p48红软基地
使用 TEMPTAB_NOLOG 参数来禁用临时表上的日志记录(lù)。该参(cān)数可(kě)以改进应用程序的性能(néng),尤其是在有 HDR 辅助服务器、RS 辅助服务器或(huò) SD 辅助服务器的数(shù)据(jù)复制环境中(zhōng),因为(wéi)其防止(zhǐ) Informix 通(tōng)过网络传(chuán)输临时表。p48红软基(jī)地
--------------------------------------------------------------------------------p48红软基(jī)地
回页首p48红软基地
数据库高可用集群方面的一些实用特性 p48红软基地
用户的关键业(yè)务系统,特别是 OLTP 系统,都要求(qiú)提供 24X7 不(bú)间断的应用服务,这就要求数据库系统能(néng)够(gòu)提供(gòng)强大的(de)高可用能力。这种(zhǒng)能力(lì)不仅仅体现在主机(jī)及备机的接(jiē)管方面,同时要(yào)能够提供远程容灾能力,以及本地的负载(zǎi)均衡(héng)能力。针对(duì)上述对数(shù)据(jù)库的要求,Informix 从版本 6 开始, 就提供了(le) HDR 技术,它是通过(guò)数(shù)据库(kù)的事务日志的方(fāng)式实现了主(zhǔ)、备(bèi)机互相接管的功能,当主机工作时,备机提供只读功能,因此,备机可以(yǐ)提供查询、报表等功能(néng),实现负载分(fèn)担的功能,当主机发生故障,备机会自动(dòng)接管,实现主(zhǔ)机(jī)及备机的接管功能。从 Informix 7.2.2 版本开始(shǐ),Informix 数据库提供了 ER(Enterprise Replication) 数据库复(fù)制技术,它(tā)也是通过(guò)读(dú)取数据库(kù)日志的(de)方式实(shí)现数据同步功能,当源数(shù)据库数(shù)据发生变化后,Informix 数据库通过(guò)读(dú)取数据库日(rì)志,将变(biàn)化的(de)数据及时同步到目标数(shù)据库,采用 ER 的方式,和 HDR 不同,HDR 数据(jù)库的接管是基于数(shù)据库服务器的(de),也(yě)就(jiù)是它的作用(yòng)范围是(shì)基于(yú)整个实例(lì)的(de),而 ER 的作用(yòng)范围是作用(yòng)于一个表,你可(kě)以灵活定义需要复制(zhì)哪些数据列及(jí)数据行(háng),而且可以(yǐ)灵活定(dìng)义数据复制的方式,是采用主从方式、汇总方(fāng)式还(hái)是双向复制(zhì)方式。从 Informix 11 开始,Informix 数(shù)据库(kù)提供了 SDS(Shared Disk Secondary)、RSS(Remote Standalone Secondary)、CLR(Continuous Log Restore) 等高可用集群(qún)技术,提供了更加强大的高可用能力。从 Informix 11.5 开始,HDR、SDS、RSS 备机都支(zhī)持读写能力,提供了更(gèng)强大的负载均衡能力。同时,从(cóng) Informix 11.5 开始,Informix 还提供了 Connection Manager 功(gōng)能部件,它可以提供 SLA(Service Level Agreement) 功能,更好地(dì)实现负(fù)载均衡(héng)的能力,同时提供(gòng)了 FOC(Fail Over Connection) 功能,实现透明故障接管(guǎn)能力,而且(qiě),所有这些对(duì)客户端应(yīng)用(yòng)来说(shuō)是透明的。p48红(hóng)软基地

Informix11.5 for linux安装wps截图

Informix11.5 for linux安装wpsp48红软基地

红软基地破解版软件均来自互联网, 如有侵犯您的(de)版权, 请与(yǔ)我们联系。
软(ruǎn)件下载地址
Informix11.5 for linux安装wps
软件推荐
下载排行

精(jīng)品软件(jiàn)

热门关键词(cí)

热门软件推荐