存档

Archive by ,文章数:325

ASE自12.5.1开始在内部处理中支持xml;自15.x版本xml功能得到进一步完善。

ASE15.x中使用xml不需要额外的license。

一、导出xml文档

在ASE的select语句中加入关键字for xml即可以xml格式显示结果集。

语法:

限制:

  • for xml select语句不能包括into_clause、compute_clause、read_only_clause、isolation_clause、browse_clause 或 plan_clause。
  • 不能在命令create view、declare cursor、subquery 或 execute command中指定 for xml select。
  • 不能在以下命令中使用for xml 子查询:for xml select、create view、declare cursor、select into;亦不能将其用作定量判定子查询,如 any/all、in/not in、exists/not exists。

下面举例导出xml格式的SQL查询结果集:

mark: rand2()  ASE 15.0.2 newid()  ASE 12.5.1 rand()    Any Version set rowcount N select * from table order by rand(convert(int,row1)+datepart(ms,getdate())) set rowcount 0

本博客已经有一篇关于的:Sybase ASE 统计当前执行的SQL语句的存储过程!  现在提供另外一种方法:使用系统存储过程sp_monitor查看当前数据库连接中正在执行的SQL语句信息! sp_monitor connection 在执行上面语句之前需要启用对connection的监控, 执行:sp_monitor enable,connection。可以在监控完成后关闭该选项。 设置参数:max SQL text monitored为2048,该参数为静态参数,需要重启ASE。 sp_monitor connection的结果默认按照连接占用的cpu时间和等待时间的总和进行逆序排序。 sp_monitor connection的第二个参数有:cpu , diskio , elapsed time 分别表示按照cpu时间、物理读取次数、cpu时间+等待时间 进行逆序排序。 在查看完正在执行的SQL语句内容后,关闭对connection的监控以减少对生产服务器的影响。 执行的语句如下: sp_configure "max SQL text monitored",2048 go –reboot ASE –… sp_monitor enable,connection go sp_monitor connection go — some SQL statement — … sp_monitor disable,connection go

以将dbo创建的所有表授予相应权限给普通用户userA为例。

将dbo拥有的表的相应权限(select/insert/update/delete)授予给普通用户userA,使用以下SQL生成授权语句:

select 'grant select  on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

union all

select 'grant insert on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

union all

select 'grant update on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

union all

select 'grant delete on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

查看某张表的上用户的权限情况:

sp_helprotect table_name

查看用户所拥有的对象权限情况:

sp_helprotect user_name

1、准备环境

    首先确保sql.ini中包含主、备服务器名称;
    创建master设备所在的目录;
    主服务器和备份服务器的RUN_file文件;

2、使用命令初始化master设备
D:\ASE\sybase157\ASE-15_0\bin\sqlsrvr.exe -dD:\ASE\sybase157\data2\master.dat -b100M -Z80M -z2048 -eD:\ASE\sybase157\ASE-15_0\install\ASE157_2K.log -sASE157_2K  -MD:\ASE\sybase157\ASE-15_0

3、使用RUN_file启动新创建的服务
在windows创建的主服务的默认字符集为:cp850;
默认包含以下系统数据库:
1> select dbid,name from sysdatabases order by dbid
2> go
 dbid   name
 ------ ------------------------------
      1 master
      2 tempdb
      3 model
  31513 sybsystemdb

(4 rows affected)

4、创建sybsystemprocs数据库

1、ASE的dsync和directio属性都是针对文件系统上的设备文件的,不适用于裸分区/原始分区。 2、dsync和directio是互斥的,也就是: dsync on对应 directio off , directio on对应dsync off。dsync和directio不能同时启用,但是可以同时关闭。 如果已将设备的dsync属性配置为on,那么不能再将directio设置为on;如果想设置directio为on,那么必须先将dsync设置为off。 3、dsync on/off表示ASE是否保证把数据写入到设备上面去;directio on/off表示ASE是否跳过操作系统的文件系统缓存。 dsync on和directio off表示ASE的写操作直接在存储介质上进行,能够保证数据完全写入到设备上以及数据库的可恢复性; dsync off和directio on表示ASE的写操作跳过操作系统缓冲区高速缓存,直接将数据传输到磁盘,不能保证数据真正写入到设备上; dsync off和directio off表示使用文件系统的缓存。 4、在SUSE上测试ASE 15.7使用文件系统设备文件时默认是directio on(dsync off),已经跳过文件系统缓存了。

ASE全局环境变量@@servername保存当前的服务器名称。

假如将ASE服务器名称从ase1503test修改成ase1503xen,

下面是修改ASE服务器名称的步骤:

1、在ASE服务器的interfaces文件中添加新服务器名称条目信息
vi $SYBASE/interfaces
添加:
ase1503xen
   master tcp ether XXXXX 75430
   query tcp ether XXXXX 75430
 
 
2、修改RUN_servername启动文件中的服务器名称
vi $SYBASE/ASE-15_0/install/RUN_ase1503test
将-sase1503test 改为 -sase1503xen
并将启动文件名称由RUN_ase1503test 修改为:RUN_ase1503xen
 
 
3、在ASE中添加新的服务器名称
用isql登录要修改的ASE服务器,执行:select @@servername查看当前的ASE服务器名称。
先删除旧服务器名称: sp_dropserver ase1503test
再添加新的服务器名称: sp_addserver ase1503xen,local,ase1503xen
这时,使用sp_helpserver查看到新服务器名称ase1503xen已经添加到ASE了。
但是全局环境变量@@servername仍为旧名称。
重启ASE服务器后,执行select @@servername发现名称已经改好了!

学习使用Jmeter对数据库进行压力测试。JMeter中称之为测试计划

JMeter的一个测试计划,包括:线程组、数据库连接、前置处理器、Sampler、后置处理器、监控结果等。

1.添加线程组:在测试计划上点右键,选择:添加》Threads(Users)》线程组;

2.添加JDBC Connection Configuration: 在线程组上点右键,选择:添加》配置元件》JDBC Connection Configuration;

3.添加前置处理器:在线程组上点右键,选择:添加》前置处理器》JDBC PreProcessor;

4.添加Sampler:在线程组上点右键,选择:添加》Sampler》JDBC Request;

5.添加后置处理器:在线程组上点右键,选择:添加》后置处理器》JDBC PostProcessor;

6.添加监控结果:在线程组上点右键,选择:添加》监听器, 可以使用 Summary Report、图形结果、用表格查看结果、监视器结果等等。

7.添加Random Variable:添加》配置元件》Random Variable;

可以设置上下级关系。