重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用语句查询SQL Server执行过的语句及执行效率
公司主营业务:成都网站设计、成都网站制作、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出曲沃免费做网站回馈大家。
SELECT TOP 1000
ST.text AS '执行的SQL语句',
QS.execution_count AS '执行次数',
QS.total_elapsed_time AS '耗时',
QS.total_logical_reads AS '逻辑读取次数',
QS.total_logical_writes AS '逻辑写入次数',
QS.total_physical_reads AS '物理读取次数',
QS.creation_time AS '执行时间' ,
QS.*
FROM sys.dm_exec_query_stats QS
CROSS APPLY
sys.dm_exec_sql_text(QS.sql_handle) ST
--WHERE QS.creation_time BETWEEN '2015-08-01 00:00:00' AND '2015-09-02 11:00:00'
ORDER BY
QS.creation_time DESC
C#和MS SQL交互使用的技术叫做 ADO.NET。 使用ADO.NET可以方便的对SQL SERVER 进行操作。
(如果你对ADO.NET不了解,建议先MSDN一下)
批量插入数据,有两种方式,
1,数据比较复杂但是量不是很大,(这个大小的概念要视你的硬件、网络而定,一般在100万条以上才叫大)。
使用FOR循环进行插入, 即声明连接(conn.Open)然后进行遍历,
一条一条插入数据库(执行Insert语句),
一般来说,100W条数据,如果插入本机数据库的话, 耗时一般在40S-1分钟左右,
也可以在SqlServer中创建一个存储过程来执行Insert命令, 遍历时只需要调用存储过程即可, 存储过程的执行效率比Sql语句要高很多,因为不需要每次都编译。
100W条数据用存储过程来执行的话,一般耗时在20S左右,。
2数据量巨大,但是类型较简单,(一般指上百万条数据)
使用ADO.NET提供的BulkCopy,即批量导入,
语法:
public static void BulkToDB(DataTable dt, string TableName)
{
SqlConnection sqlConn = new SqlConnection(
ConfigurationManager.ConnectionStrings["dbconnstr"].ConnectionString);
SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
bulkCopy.BulkCopyTimeout = 600;
bulkCopy.DestinationTableName = TableName;
bulkCopy.BatchSize = dt.Rows.Count;
try
{
sqlConn.Open();
if (dt != null dt.Rows.Count != 0)
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
}
需要传入一个DataTable,一个表名。
这种方式速度非常快,同样100W条数据,本机导入,大概3-5秒就可以完成,
但是需要注意,传入的DataTable必须和Sql Server中的表结构一模一样,
比如你的表有3列,分别是Name, Age, Sex。 你传入的DataTable也必须是如此,所以这种方式只适合导入一些基础数据, 并不适合作为数据层的常用方法。
如果数据量巨大又要求很高的效率,更建议使用NoSql数据库
从网盘上获取SQLServer的JDBC驱动程序6.0版本,百度网盘下载地址:。 运行sqlserver_jdbc.exe程序,弹出一个解压窗体,点击【Unzip】按钮,可以将安装程序解压到当前目录下。