首页 > Linux操作系统 > Linux操作系统 > informix 维护命令
1.http://www.违规广告.com/html/zhuanti/informix/
一个数据表包括数据文件和索引文件,检查数据文件
用select * from table_name检查数据文件
bccheck -n 检查索引文件
Informix-SQL中的语句check table 〈表名〉与repair table 〈表名〉在运行时分别以选项-n与-y调用bcheck命令,
功能一样,不同的只是使用表名而不是表文件名
在Informix数据库的系统表systables中有一字段nrows,专门用来记录各表的记录个数。优化器在运行法则判断时,
各表的nrows 值具有很高的参考价值。nrows的更新可通过如下命令来完成,即:
update statistics [for table 〈table—name〉]
其中,方括号[]中的子句是可选的,用于指定表名,以对该表进行更新;否则,将对数据库中的各表进行全部更新。
任何一个Informix数据库都有九个系统表,用于记录数据库的有关信息,其中系统表systables(用于描述数据库中的各表) 中的字段dirpath指明各表文件的绝对路径或相对路径。
Informix数据库的搜索路径一般由环境变量DBPATH来设定,系统根据DBPATH的正确设定即可找到相应的数据库及其各表。
迁移Informix数据库表时(比如从Unix/Xenix的根文件系统迁移到分离的文件系统/u),只要重新设定DBPATH,通常系统即可正常运行。如果报告某些表找不到了(实际上这些表文件还在,且有关权限也对),问题就在于systables 表中的dirpath 字段值采用了绝对路径, 此时要用update命令修正其值,最好改用相对路径,即直接改为表文件名。
改名:
RENAME COLUMN TABLE。COL TO NEWCOL_NAME
RENAME TABLE TABLE_NAME TO NEWTABLE_NAME
一、先对以下操作的环境做以下假设
1.服务器端
服务器机器名:scoserverip地址:10.0.0.1
数据库名:informixserverservicename:sqlexec
端口号:5000/tcp
数据库用户名:informix
数据库用户口令:informix
2.客户端
windowsxp+informixconnect2.8
二、谈谈以上参数如何获得
1.服务器机器名,即hostname,可以用hostname命令查看。
2.ip地址:可以用ifconfig-a来看
3.数据库名:可以查看$INFORMIXSERVER/etc/sqlhosts文件。第一列就是数据库名
4.servicename:可以查看$INFORMIXSERVER/etc/sqlhosts文件。最后一列就是servicename
5.端口号:查到servicename之后,在/etc/services文件中找该servicename即可发现
三、客户端的设置
1.建议在客户端配置hosts,services这两个文件,使其包含服务器的内容。具体做法如下:
windowxp的hosts,和services两个文件放在%systemroot%/system32/drivers/etc目录下。
在hosts后面添加一行:
10.0.0.1 scoserver
在services后面添加一行
sqlexec 5000/tcp
2.运行DBping测试和服务器的连通性。
先用ping测试物理是否连通,记住在hostname的地方直接输入机器名就可以了,不用ip地址。
(因为你已经配好了hosts文件)
然后用iconnect进行逻辑ping
按照以上信息填写(当然要根据你的实际情况填写啰),然后数据库选择sysmaster,应该就会成功了。
3.最后建一个odbc连接,再测测。问题应该不大,要填写的参数,在iconnect测试中都有了。
删除临时表shell:
#!/bin/csh
if ($#argv != 1 then
echo "Usage:csh deltmp.sh [dbname]";
exit(0);
else if ($#argv == 1 then
set dbname="$argv[1]";
endif
rm deltmp*.sql
echo "now load tmp table to deltmp.sql"
dbaccess $dbname
EOF
echo "load finish"
echo "| --> ;"
sed 's/|/;/w deltmp1.sql' deltmp.sql
echo "tmp --> drop table tmp"
sed 's/tmp/drop table tmp/w deltmp2.sql' deltmp1.sql
echo "delete temp table"
dbaccess $dbname deltmp2.sql
echo "delele temp files"
rm deltmp*.sql
对大批量update操作(如load数据),首先drop index,再update;然后再建索引, 能提高性能。
对大批量update操作(如load数据),首先drop index,再update;然后再建索引, 能提高性能。
对大批量update操作(如load数据),首先drop index,再update;然后再建索引, 能提高性能。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21634752/viewspace-613580/ ,如需转载,请注明出处,否则将追究法律责任。