关于SQL函数效率的一些测试与思考

发表于:2012-5-15 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CrazyJinn    来源:51Testing软件测试网采编

View Code


    class Sql
    {
        public DataTable getData(string sql)
        {
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=Test;User Id=sa;Password=1;";
            SqlCommand comm = new SqlCommand(sql, conn);
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(comm);
            DataSet ds = new DataSet();
            da.Fill(ds, "ds");
            conn.Close();
            return ds.Tables[0];
        }
    }

View Code

--根据课程ID,返回选此课程的学生的名字,以逗号隔开
ALTER function [dbo].[f_getStuNamesByClassID] (@ID int)
RETURNS nvarchar(50)
begin
    declare @Result nvarchar(50);
    declare @stuName nvarchar(50);
    Set @Result='';

    declare cur cursor for
    (
        SELECT S.StuName FROM Class C
        LEFT JOIN Student S ON C.ID=S.ClassID
        WHERE C.ID=@ID
    )
    open cur;
    fetch next from cur into @stuName;
    while(@@fetch_status=0)
    begin
        set @Result=@Result+@stuName+',';
        fetch next from cur into @stuName;
    end;
--去除最后多余的一个逗号
    IF @Result <> ''
        SET @Result=SUBSTRING(@Result, 1, LEN(@Result)-1);
    ELSE
        SET @Result=NULL;
    return @Result;
en

  测试结果如下:

  00:00:00.5466790
  00:00:00.7753704
  效率比1.418329
  =============================
  00:00:01.0251996
  00:00:01.5594629
  效率比1.521131
  =============================
  00:00:01.5124349
  00:00:02.3286227
  效率比1.539652
  =============================
  00:00:01.9882458
  00:00:03.1007960
  效率比1.559564
  =============================
  00:00:02.4476305
  00:00:03.8717636
  效率比1.581842
  =============================
  00:00:02.9129007
  00:00:04.6332828
  效率比1.590608
  =============================
  00:00:03.4006140
  00:00:05.3971930
  效率比1.587123
  =============================
  00:00:03.8655281
  00:00:06.2574500
  效率比1.618783
  =============================
  00:00:04.4532249
  00:00:07.0674710
  效率比1.587046
  =============================
  00:00:04.9540083
  00:00:07.8596999
  效率比1.586533
  =============================

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号