TSQL相当于PostgreSQL的“PERFORM”关键字?

时间:2011-08-22 17:49:42

标签: c# tsql postgresql performance-testing multiple-resultsets

我正在循环中测试查询性能。我想运行一个选择语句数百次,而不是返回结果集的一百个重复项,而不是每次都丢弃结果。

PostgreSQL的语法为“perform select ...”,它将执行select语句并丢弃结果。 “37.6.2。执行无结果的查询”http://www.postgresql.org/docs/8.2/static/plpgsql-statements.html

TSQL中是否有等效的关键字?

我知道SSMS有一个“丢弃结果”选项,但似乎结果在每次迭代后都不会被丢弃,并且在所有迭代完成之前仍会累积在内存中。我想选择一个临时变量可以工作,但用关键字丢弃结果要简单得多。我宁愿避免构造表变量定义以及将结果存储在临时表中的潜在开销。

2 个答案:

答案 0 :(得分:0)

我在SQL-92规范中搜索了一个等效的关键字,但是我无法找到任何一个,而且根据我的经验,我不知道SQL Server的一个特定关键字。

答案 1 :(得分:0)

如果您使用的是ADO.Net,请使用command.ExecuteNonQuery();

执行不带结果集的查询。
using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main(string[] args)
    {
        string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=MyDatabase;";

        string sqlDelete = "DELETE FROM MyTable WHERE Id = 2";

        SqlConnection connection = new SqlConnection(sqlConnectString);
        SqlCommand command = new SqlCommand(sqlDelete, connection);
        connection.Open( );
        int rowsAffected = command.ExecuteNonQuery( );
        Console.WriteLine("{0} row(s) affected.", rowsAffected);
        Console.WriteLine("Record with Id = 2 deleted.");
        connection.Close( );
    }
}