loadrunner测试sql语句性能

最初的想法是是想通过录制在SQL Server2008的操作来着的,无奈试了即便都录不到查询的sql语句,网上查资料全是关于SQL 2000的(这部分有经验的欢迎指教)。

于是只能通过直接调用loadrunner本身的function来实现sql语句的性能测试。主要用到的是lr_db_connect和lr_db_executeSQLStatement两个函数,具体的用法这里不做解释,请自行查看loadrunner的帮助说明。

下面进入正题。在函数lr_db_connect的帮助说明中有句“Important: This function is available only from within Web Services scripts.”。这句话决定了,我们在协议选择的时候只能选择Web Services协议。下面附上脚本

 1 Action()
 2 {
 3         int NumRows=0;
 4         double times=0;
 5         int i=1;
 6         lr_db_connect("StepName=Connect",
 7                       "ConnectionString=Provider=SQLOLEDB;Data Source=.;Initial Catalog=loadrunner_test;User Id=sa;Password=密码",  8                       "ConnectionName=db1",
 9                       "ConnectionType=OLEDB", //ConnectionType=SQL时,ConnectionString不可以带有Provider;=OLEDB时,必须带Provider
10                       LAST);
11
12
13
14         lr_start_transaction("SQL查询"  );
15         NumRows=lr_db_executeSQLStatement("StepName=Query",
16                                   "ConnectionName=db1",
17                                   "SQLStatement=SELECT * FROM dbo.test_table",
18                                   "DatasetName=MyDataset",
19                                   LAST );
20         times=lr_get_transaction_duration("SQL查询");
21         lr_end_transaction("SQL查询", LR_AUTO);
22
23
24
25         while (i<=10) {
26             lr_db_getvalue("StepName=GetValue",
27                            "DatasetName=MyDataset",
28                            "Column=username",
29                            "Row=next",
30                            "OutParam=MyOutputParam",
31                            LAST);
32             lr_output_message("The value is: %s", lr_eval_string("{MyOutputParam}") );
33             i=i+1;
34         }
35         lr_output_message("The query returned %d rows.", NumRows);
36         lr_output_message("SQL语句执行时间 %f ", times);
37     return 0;
38 }

对于上面的脚本来说,困难的地方以下几个方面:

1,ConnectionString:说实在的这么多版本的sql,帮助就给了一个ConnectionType为sql的例子,不能不说坑爹。下面附上连接,包含了数据源的连接

:http://www.connectionstrings.com/

2,ConnectionType=OLEDB时ConnectionString后面必须指定Provider属性,ConnectionType=SQL又绝对不可以指定Provider属性,真是想说脏话了

3,lr_db_connect中的ConnectionName可以随意指定,但是lr_db_executeSQLStatement中的ConnectionName必须和其保持一致

时间: 2024-10-22 21:01:01

loadrunner测试sql语句性能的相关文章

如何测试sql语句性能,提高执行效率

有时候我们经常为我们的sql语句执行效率低下发愁,反复优化后,可还是得不到提高 那么你就用这条语句找出你sql到底是在哪里慢了 示例: SET STATISTICS io ON        SET STATISTICS time ON        go         ---你要测试的sql语句         select top 100 * from TBL_Cot_RecStaticList        go        SET STATISTICS profile OFF    

查看SQL语句执行时间与测试SQL语句性能

查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下: SET STATISTICS PROFILE ON:显示分析.编译和执行查询所需的时间(以毫秒为单位). SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数

查看sql语句执行时间/测试sql语句性能

写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下: SET STATISTICS PROFILE ON:显示分析.编译和执行查询所需的时间(以毫秒为单位). SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数.逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁

SQL: 查看语句执行时间--测试sql语句性能

SET STATISTICS PROFILE ON:显示分析.编译和执行查询所需的时间(以毫秒为单位). SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数.逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息. SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件. 使用方法:打开SQL SERVER 查询分析器,输入以下语句: set statistics profile on set statist

优化临时表使用,SQL语句性能提升100倍

[问题现象] 线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右.SQL语句如下:SELECT DISTINCT g.*, cp.name AS cp_name, c.name AS category_name, t.name AS type_name FROMgm_game g LEFT JOIN gm_cp cp ON cp.id = g.cp_id AND cp.deleted = 0 LEFT JOIN gm_cate

SQL语句性能优化--LECCO SQL Expert

SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句. 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句. 数据库性能的优化   一个数据库系统的生命周期可以分成:设计.开发和成品三个阶段.在设计阶段进行数据库性能优化的成本最低,收益最大.在成品阶段进行数据库性能优化的成本最高,收益最小. 数据库的优化通常可以通过对网络.硬件.操作系统.数据库参数和应用程序的优化来进行.最常见的优化手段就是对硬件的升级.根据统计,对网

Informix 11.5 SQL 语句性能监控方法及实现

我们知道,在数据库应用系统中,SQL 语句的性能好坏至关重要.如果 SQL 语句性能很差,可能会导致整个数据库应用系统的性能也非常差.那么,如何监控数据库系统中 SQL 语句的性能,导致 SQL 语句性能差的原因是什么? SQL 语句运行过程中对系统资源的使用情况如何?系统资源存在哪些瓶颈?在 Informix 11.5 中,主要提供了两个工具来解决上述问题.一个是 set explain 命令,我们可以通过查看数据库的查询计划来分析导致 SQL 语句性能差的原因并给予相应的调整,另一个是 SQ

SQL语句性能分析常用选项开关

DBCC freeproccache DBCC dropcleanbuffers 1.set statistics IO {ON| OFF} /*Transact-SQL 语句生成的磁盘活动量的信息*/2.set statistics time on {ON| OFF} /*显示分析.编译和执行各语句所需的毫秒数*/3.set statistics profile on 4.set showplan_all on {ON| OFF} /*返回有关语句执行情况的详细信息,并估计语句对资源的需求*/

数据库之测试sql语句效率

在写sql语句的时候发现,对于想要的结果通常有好多中实现方法.当面对这些实现方法的时候要如何选择才是相对来说最优的呢?这就引出了这篇博客的主题,如何测试sql语句的效率 下面介绍几种sql语句测试效率的方法,大多数是从网上查找的,然后再一一测试了一下.最后我自己做了一个重新的整理. 1. 测试sql语句执行时间的方法,获得查询前后时间差 declare @begin_date datetime declare @end_date datetime select @begin_date = get