本地测试Sql
数据库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的更多相关文章
- Oracle本地动态 SQL
本地动态 SQL 首先我们应该了解什么是动态 SQL,在 Oracle数据库开发 PL/SQL块中我们使用的 SQL 分为:静态 SQL语句和动态 SQL语句.所谓静态 SQL指在 PL/SQL块中使 ...
- 用java开发微信公众号:测试公众号与本地测试环境搭建(一)
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng/p/5023678.html 俗话说,工欲善其事,必先利其器.要做微信公众号开发,两样东西不可少,那就是要有一 ...
- 在本地测试一次成功的AJAX请求
要在本地测试AJAX,首先是环境的搭建,下面以wamp为例. 1.先在wamp的官网下载wamp的安装包,网址 http://www.wampserver.com/. 2.安装wamp.如果安装过程中 ...
- 本地测试AJAX请求
要在本地测试AJAX,首先是环境的搭建,因为XHR对象的open方法中参数url是指文件在服务器上的文件.下面以WampServer为例. 1. 下载wamp的安装包,下载地址为:http://221 ...
- win10系统iis下部署搭建https (ssl/tls)本地测试环境
有时想要把公司的某些XX项目部署成https站点,是为了在传输层加密传输,防止他人嗅探站点重要数据信息,平常我们使用的http方式都是明文方式传输的很不安全,容易被他人窃取.而有些时候要在本地搭建ht ...
- win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)
原文:http://www.cnblogs.com/naniannayue/archive/2012/11/19/2776948.html 要想成功架设SSL安全站点关键要具备以下几个条件. 1.需要 ...
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...
- 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security Socket Layer)全称 ...
- sqlserver 测试sql语句执行时间
查看sql语句执行时间/测试sql语句性能 写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置S ...
随机推荐
- sum data
$('.group_header').each(function(){ ; $(this).nextUntil('tr.group_header').find('.num').each(functio ...
- HDU 3605:Escape(最大流+状态压缩)
http://acm.hdu.edu.cn/showproblem.php?pid=3605 题意:有n个人要去到m个星球上,这n个人每个人对m个星球有一个选择,即愿不愿意去,"Y" ...
- Java8闭包
闭包在很多语言中都存在,例如C++,C#.闭包允许我们创建函数指针,并把它们作为参数传递,Java编程语言提供了接口的概念,接口中可以定义抽象方法,接口定义了API,并希望用户或者供应商来实现这些方法 ...
- highchart导出功能的介绍更改exporting源码
本案利用highchar作为前端,展示数据的图形效果,结合spring+springmvc来完成数据图片的导出. jsp引入文件: <script src="${pageContext ...
- 【Spring】非Spring IOC容器下获取Spring IOC上下文的环境
前言 在Spring Web项目中,有些特殊的时候需要在非Spring IOC容器下获取Spring IOC容器的上下文环境,比如获取某个bean. 版本说明 声明POM文件,指定需引入的JAR. & ...
- 名词王国里的死刑execution in the kingdom of nouns
http://www.cnblogs.com/bigfish--/archive/2011/12/31/2308407.htmlhttp://justjavac.com/java/2012/07/23 ...
- [转]什么是SPI通信
SPI:高速同步串行口.3-4线接口,收发独立.可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口.是Motorola首先在其MC6 ...
- Latex引用插图格式制定问题(1)
自定义新命令\reffig如下:\newcommand{\reffig}[1]{Figure \ref{#1}}在需要引用图片的时候,用\reffig代替\ref,就可以自动在图号前面输出" ...
- React组件库
图表组件库:Recharts(React和D3构建的图表库) UI组件库:react-bootstrap
- Java知识积累2-StringReverse实现文字(单词)倒叙输出
package String; import java.util.Stack;import java.util.StringTokenizer; public class StringReverse ...