数据库sqlserver2008

编程vs2008,C#

该测试是数据库和程序在一台计算机上,如果不在一台计算机上就不一样了

我的数据库最大链接是127,好像不固定。

一、测试链接对速度的影响

static void RunSql()
        {
            DateTime datetime1 = DateTime.Now;
            for (int i = 0; i < 1000; i++)
            {
                SqlHelper.ExSql();  
            }
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);
        }

1、初始化,打开,操作,关闭

public static void ExSql()
        {
            conn = new SqlConnection(connstr);
            string sqlstr1 = "INSERT INTO [dbo].[T2]([C2])VALUES('a')";
            SqlCommand cmd1 = new SqlCommand(sqlstr1, conn);
            conn.Open();
            cmd1.ExecuteNonQuery();
            conn.Close();
        }

2、打开,操作,关闭

3、操作

总结:1000个周期,节省了100ms,没多大区别

二、SqlDataAdapter打开前和打开后的状态

1、开始是打开状态

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(sqlstr,conn);
            Console.WriteLine(conn.State.ToString());
            DataTable dt=new DataTable();
            da.Fill(dt);
            Console.WriteLine(conn.State.ToString());
            
        }

2、开始是关闭状态

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            conn.Open();
            conn.Close();
            SqlDataAdapter da = new SqlDataAdapter(sqlstr,conn);
            Console.WriteLine(conn.State.ToString());
            DataTable dt=new DataTable();
            da.Fill(dt);
            Console.WriteLine(conn.State.ToString());
            
        }

总结:SqlDataAdapter.Fill()执行后的状态由执行前的状态决定

三、SqlDataAdapter和SqlDataReader的速度

1、SqlDataAdapter

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            DateTime datetime1 = DateTime.Now;
            SqlDataAdapter da = new SqlDataAdapter(sqlstr,conn);          
            DataTable dt=new DataTable();
            da.Fill(dt);
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);            
        }

2、SqlDataReader填充表

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            DateTime datetime1 = DateTime.Now;
            DataTable dt = new DataTable();
            SqlCommand cmd=new SqlCommand(sqlstr,conn);
            dt.Columns.Add("c1",typeof(int));
            dt.Columns.Add("c2",typeof(string));
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                object[] values = new object[2];
                reader.GetValues(values);
                dt.Rows.Add(values);
            }
            reader.Close();
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);            
        }

3、SqlDataReader不填充表

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            DateTime datetime1 = DateTime.Now;
            DataTable dt = new DataTable();
            SqlCommand cmd=new SqlCommand(sqlstr,conn);
            dt.Columns.Add("c1",typeof(int));
            dt.Columns.Add("c2",typeof(string));
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                object[] values = new object[2];
                reader.GetValues(values);
               // dt.Rows.Add(values);//去掉该句
            }
            reader.Close();
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);            
        }

4、SqlDataReader不读取值

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            DateTime datetime1 = DateTime.Now;
            DataTable dt = new DataTable();
            SqlCommand cmd=new SqlCommand(sqlstr,conn);
            dt.Columns.Add("c1",typeof(int));
            dt.Columns.Add("c2",typeof(string));
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                //object[] values = new object[2];//去掉
                //reader.GetValues(values);
               // dt.Rows.Add(values);
            }
            reader.Close();
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);            
        }

4、SqlDataReader不遍历值

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            DateTime datetime1 = DateTime.Now;
            DataTable dt = new DataTable();
            SqlCommand cmd=new SqlCommand(sqlstr,conn);
            dt.Columns.Add("c1",typeof(int));
            dt.Columns.Add("c2",typeof(string));
            SqlDataReader reader = cmd.ExecuteReader();
            //while (reader.Read())
            //{
            //    //object[] values = new object[2];
            //    //reader.GetValues(values);
            //   // dt.Rows.Add(values);
            //}
            reader.Close();
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);            
        }

5、SqlDataReader不销毁

public static void ExSql()
        {
            string sqlstr="SELECT [C1],[C2] FROM [dbo].[T2]";
            DateTime datetime1 = DateTime.Now;
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand(sqlstr, conn);
            dt.Columns.Add("c1",typeof(int));
            dt.Columns.Add("c2",typeof(string));
            SqlDataReader reader = cmd.ExecuteReader();
            //while (reader.Read())
            //{
            //    //object[] values = new object[2];
            //    //reader.GetValues(values);
            //   // dt.Rows.Add(values);
            //}
           
            DateTime datetime2 = DateTime.Now;
            string a = (datetime2 - datetime1).TotalMilliseconds.ToString();
            Console.WriteLine(a);     
            reader.Close(); //该局调换了位置     
        }

总结:还是用SqlDataAdapter好一点,至少语句简单

本地测试Sql的更多相关文章

  1. Oracle本地动态 SQL

    本地动态 SQL 首先我们应该了解什么是动态 SQL,在 Oracle数据库开发 PL/SQL块中我们使用的 SQL 分为:静态 SQL语句和动态 SQL语句.所谓静态 SQL指在 PL/SQL块中使 ...

  2. 用java开发微信公众号:测试公众号与本地测试环境搭建(一)

    本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/5023678.html 俗话说,工欲善其事,必先利其器.要做微信公众号开发,两样东西不可少,那就是要有一 ...

  3. 在本地测试一次成功的AJAX请求

    要在本地测试AJAX,首先是环境的搭建,下面以wamp为例. 1.先在wamp的官网下载wamp的安装包,网址 http://www.wampserver.com/. 2.安装wamp.如果安装过程中 ...

  4. 本地测试AJAX请求

    要在本地测试AJAX,首先是环境的搭建,因为XHR对象的open方法中参数url是指文件在服务器上的文件.下面以WampServer为例. 1. 下载wamp的安装包,下载地址为:http://221 ...

  5. win10系统iis下部署搭建https (ssl/tls)本地测试环境

    有时想要把公司的某些XX项目部署成https站点,是为了在传输层加密传输,防止他人嗅探站点重要数据信息,平常我们使用的http方式都是明文方式传输的很不安全,容易被他人窃取.而有些时候要在本地搭建ht ...

  6. win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)

    原文:http://www.cnblogs.com/naniannayue/archive/2012/11/19/2776948.html 要想成功架设SSL安全站点关键要具备以下几个条件. 1.需要 ...

  7. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  8. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

  9. sqlserver 测试sql语句执行时间

    查看sql语句执行时间/测试sql语句性能 写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置S ...

随机推荐

  1. Infinite loop when using cookieless session ID on Azure

    If you use cookieless session ID and deploy them on Azure, you might get infinite loop when you quer ...

  2. C#:注册组件

    注册flash 为例: 代码比较差 仅供学习参考 /// <summary> /// 注册组件 /// </summary> private static void Regis ...

  3. C++中的4个类型转换关键字

    转载:http://poplars.blog.163.com/blog/static/1394221742013021111210567/ n多书里面推荐要养成使用转型关键字的习惯,几年过去了,感觉还 ...

  4. IOS UITableview代理方法总结

    tableview的datasource代理 @required的两个数据源方法 1.返回每个 session 中 cell 的个数 - (NSInteger)tableView:(UITableVi ...

  5. usr类库的使用(一般用在第三方类库使用系统库报错头文件找不到时)

    第三方Html解析类库Hpple,在导入框架libxml2.2.dylib后,XCode仍然找不到<libxml/tree.h>. 1 .项目 -Targets 中的 Build P ha ...

  6. angular源码阅读的起点,setupModuleLoader方法

    angular源码其实结构非常清晰,划分的有条有理的,大概就是这样子: (function(window,document,jquery,undefined){ //一些工具函数 //EXPR 编译器 ...

  7. javaScript AJAX

    AJAX的实现 var sAjax = function () { var sendMsg = { url: "", sendType: "POST", Con ...

  8. 初窥Linux 之 我最常用的20条命令

    魏公 SecureCRTuname -avisftppartition,fsshell kshell,bshelluser,groupIPTables文件数,内核参数tail,less/var/log ...

  9. 一个简单的loading,纯属自娱自乐

    /// <reference path="/scripts/js/jquery.min.js" /> var zsw = { loading: function (im ...

  10. centos7 dokcer fastdfs

    docker run --name=fastdfstmp -tid centos /bin/bash docker cp /home/fastdfs fastdfstmp:/home docker e ...