如何记录查询时间?

时间:2016-01-26 15:22:40

标签: c# asp.net .net oledb

我这样的oledb连接很少:

try
{
    OleDbConnection Connection8;
    using (Connection8 = new OleDbConnection("Provider=MSDAORA.1;Data Source=DATABASE:1521/orcl;Persist Security Info=True;Password=PASSWORD;User ID=USERNAME;"))
    {
        string sqlQuery = "select * from TABLE";

        using (OleDbDataAdapter cmd = new OleDbDataAdapter(sqlQuery, Connection8))
        {
            Connection8.Open();
            DataTable dt = new DataTable();
            cmd.Fill(dt);
            GridView5.DataSource = dt;
            GridView5.DataBind();
            v8 = 1;
            Connection8.Close();
        }
    }
}
catch (Exception)
{
    v8 = 0;
}

有些连接等了很多,但我不知道是哪一个。

如何记录或查看每个连接的查询时间?有什么建议吗?谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用Stopwatch

var stopwatch = new Stopwatch();
DataTable dt = new DataTable();
stopwatch.Start();
Connection8.Open();
cmd.Fill(dt);
stopwatch.Stop();

var timeElapsed = stopwatch.ElapsedMilliseconds;

请注意这里的示例我已经表明打开连接的时间将包含在测量时间内。如果您不需要它并且想要“纯”查询执行时间 - 那么只需更改连接打开和秒表开始的行的顺序。

答案 1 :(得分:0)

我不知道这是否有效,因为您使用的是OleDbConnection,但您可以做的一件事是在控制面板中打开“Odbc Administrator”(务必检查是否需要32位或64位)您可以打开一个“跟踪”选项卡,它会为您提供所有已处理的ODBC请求的日志文件。

enter image description here

但请记住,就像我说的那样,因为你使用的是OleDbConnection,它可能不会记录任何内容。

答案 2 :(得分:0)

我过去使用过 Glimpse ,可能对您有用:

http://getglimpse.com/