首页 | 摘要显示 | 上一页 1 2 3 4 5 6 7 8 9 10 下一页

Developer Archives

December 12, 2006

十六进制的ASCII代码表

00NUL01SOH02STX03ETX04EOT05ENQ06ACK07BEL
08BS 09HT 0ANL 0BVT 0CNP 0DCR 0ESO 0FSI
10DLE11DC112DC213DC314DC415NAK16SYN17ETB
18CAN19EM 1ASUB1BESC1CFS 1DGS 1ERS 1FUS
20SP 21! 22" 23# 24$ 25% 26& 27'
28( 29) 2A* 2B+ 2C, 2D- 2E. 2F/
300 311 322 333 344 355 366 377
388 399 3A: 3B; 3C< 3D= 3E> 3F?
40@ 41A 42B 43C 44D 45E 46F 47G
48H 49I 4AJ 4BK 4CL 4DM 4EN 4FO
50P 51Q 52R 53S 54T 55U 56V 57W
58X 59Y 5AZ 5B[ 5C\ 5D] 5E^ 5F_
60` 61a 62b 63c 64d 65e 66f 67g
68h 69i 6Aj 6Bk 6Cl 6Dm 6En 6Fo
70p 71q 72r 73s 74t 75u 76v 77w
78x 79y 7Az 7B{ 7C| 7D} 7E~ 7FDEL

以上数据从man ascii的输出中整理出来. 整理目的是为了方便给ociuldr指定任意分隔符.

December 14, 2006

Array Fetch在Delay时间较长的网络中的重要性

    从我的笔记本连到我们公司的测试数据库服务器的网络Delay时间较长, 因为要从中国到美国, 今天在这个环境下测试了Array Fetch的功效, 估许看完了, 你又得去改你的程序了.

    测试软件:

AnySQL
JDBC 10g

    测试语句:

  SET AUTOT TRACE STATISTICS
  SET TIMING ON
  SET FETCHSIZE 1
  SELECT * FROM ALL_OBJECTS WHERE ROWNUM < 100;
  SET FETCHSIZE 2
  SELECT * FROM ALL_OBJECTS WHERE ROWNUM < 100;
  SET FETCHSIZE 10
  SELECT * FROM ALL_OBJECTS WHERE ROWNUM < 100;
  SET FETCHSIZE 20
  SELECT * FROM ALL_OBJECTS WHERE ROWNUM < 100;
  SET FETCHSIZE 50
  SELECT * FROM ALL_OBJECTS WHERE ROWNUM < 100;
  SET FETCHSIZE 100
  SELECT * FROM ALL_OBJECTS WHERE ROWNUM < 100;

    测试结果:

FETCHSIZE Time Consistent Gets Bytes Roundtrips
1 16.858 582 10K 204
2 8.529 516 8323 104
10 1.852 463 6923 24
20 1.021 457 6748 14
50 0.531 451 6642 8
100 0.370 450 6608 6

    可以发现设置较大的FETCHSIZE后, SQL*Net Roundtrips的数量大大减少, 从儿在Delay时间比较长的网络中得以提高性能.

January 3, 2007

Perl或Shell中的文件测试命令

    最近用Shell和Perl的机会越来越多了, 又开始看相关书籍了, 下面是从书中抄下来的关于文件操作的命令:

-r可被当前用户读 -w可被当前用户写
-x可被当前用户执行 -o属于当前用户
-R可被setuid之前的用户读 -W可被setuid之前的用户写
-X可被setuid之前的用户执行 -O性于setuid之前的用户
-e文件或目录存在 -z文件存在并且大小为0
-s文件存在并且大小不为0 -f是否普通文件
-d是否目录 -l是否符号连接
-S是否套接字(Socket) -p是否管道(Pipe)
-b是否块设备 -c是否字符设备
-u是否属于setuid之后的用户 -g是否属于setgid之后的组
-ksticky标志是否设置 -tisatty()函数是否为真
-T是否文本文件 -B是否二进制文件
-M最后修改距现在的天数 -A最后访问距现在的天数
-C最后Inode修改距现在的天数   

    这些东西很是常用, 但却总是记不清.

January 5, 2007

Perl中文件与目录的操作

  1, 删除文件 -- unlink

    如成功返回删除的文件数(True), 否则返回0(False). 如:

unlink("test.txt");
unlink("test1.txt","test2.txt");
unlink(<test*.txt>); // "rm test*.txt" under shell

  2, 重命名文件 -- rename

    如成功返回真(True), 否则返回假(False). 如:

rename("a.txt","b.txt");
rename("a.txt","subdirectory/a.txt");

  3, 创建连接 -- link(硬链接), symlink(软链接)和readlink(取得链接内容)

    对link和symlink, 如成功返回真(True), 否则返回假(False), 对readlink则返回链接所指向的文件名. 对硬链接而言, 参数必须为文件名, 不能为目录名. 如:

link("a.txt","b.txt"); // ln a.txt b.txt
symlink("a.txt","b.txt"); // ln -s a.txt b.txt
$actual_file=readlink("b.txt");

  4, 目录操作 -- mkdir(创建)和rmdir(删除)

    如成功返回真(True), 否则返回假(False). 如:

mkdir("temp", 0777);
rmdir("temp");

  5, 修改权限与所有者 -- chmod(权限)和chown(所有者)

    如成功返回成功修改的文件数(True), 否则返回0(False). 改所有者的chown函数的前两个参数必须是用户的ID和组的ID, 不能指定名称, 如:

chmod(0666,"a.txt","b.txt",...);
chown(user_id, group_id, "a.txt","b.txt",...);

  6, 修改文件时间 -- utime

    如成功返回成功修改的文件数(True), 否则返回0(False). 第一个参数为最后访问时间, 第二个参数为最后修改时间. 如:

$when = time() + 20 * 60;
utime($when,$when, "a.txt");

  知识源于积累, 过段时间后, 我可以和大家讨论Perl了.

January 8, 2007

学习Perl DBI -- Database Driver

    从今天开始起从头学习Perl的DBI编程, 先接触到的是DBI中的数据库驱动(Driver)对象, 有三个函数可以调用: avaialable_drivers, data_sources和connect. connect是用来连接到数据库的, avaialable_drivers是用来看你所安装的Perl支持那几种数据库. 如下面的代码:

#!/usr/bin/perl -w
#

use DBI;

my @drvlist = DBI->available_drivers();

foreach my $drvname (@drvlist)
{
   print ("$drvname\n");
}

    在运行后输出的结果是:

ExampleP
Oracle
Proxy

    data_sources函数是用来列出有那些数据库可以连接的,如下面的代码:

#!/usr/bin/perl -w
#

use DBI;

my @tnslist = DBI->data_sources("Oracle");

foreach my $tns (@tnslist)
{
   print ("$tns\n");
}

    在运行后输出的结果是:

dbi:Oracle:test8i
dbi:Oracle:test9i
dbi:Oracle:test10g

    其中test8i, test9i和test10g是在tnsnames.ora中定义的连接字符串. 不过在DBD Oracle v1.19的版本中, 数据源的格式可以有几种了, 这个data_sources函数已经变得没有什么意义了. 如下所示:

dbi:Oracle:host=localhost;port=1521;sid=test8i;
dbi:Oracle:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=localhost) (PORT=1521)) (CONNECT_DATA=(SID=test8i)))
dbi:Oracle:localhost:1521/test8i

    上面的最后一种方法只在10g的客户端下有效.

上一页 1 2 3 4 5 6 7 8 9 10 下一页

当前分类: Developer

Creative Commons License
本站版权: 共用创作 CC
署名-非商业性-相同方式分享
本站基于MT-3.36免费版
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql