我们有一个非现场托管的SQL Server实例,我们无法访问实际的服务器环境。我们需要尝试加快服务器的响应速度,他们的服务台发送给我们:
通过SQL Server Management Studio针对您的iMIS数据库运行以下命令:
SELECT
OBJECT_NAME(parent_id) AS TableName,
name AS TriggerName,
create_date AS CreationDate,
modify_date AS ModifyDate
FROM
sys.triggers
问题:我们是否必须访问SQL Server才能运行该代码?这段代码有意义吗?它会加速我们的数据库吗?
答案 0 :(得分:3)
您只需要能够从本地SSMS实例连接到数据库服务器。你只需要输入"服务器名称"并在运行此查询之前对服务器进行身份验证。
您可能需要适当的权限才能运行这些语句。但你可以尝试一下。
上面的查询获取触发器信息( TableName:创建触发器的表名。 TriggerName:在上表中创建的触发器的名称。 CreationDate:创建此触发器的日期时间 ModifyDate:上次修改此触发器的日期时间。 ) 如果触发器写入数据的Audit表非常庞大,则触发器可能会降低性能和响应时间。
答案 1 :(得分:2)
您可以使用Powershell执行此查询,从而避免必须完全使用或安装SQL Server Management Studio:
$connection = New-Object System.Data.SqlClient.SQLConnection("Data Source=<DB Hostname>;User ID=<DB Username>; Password=<DB Password>")
$connection.Open()
$cmd = New-Object System.Data.SqlClient.SqlCommand("SELECT OBJECT_NAME(parent_id) AS TableName, name AS TriggerName, create_date AS CreationDate, modify_date AS ModifyDate FROM sys.triggers",$connection)
$sqlReader = $cmd.ExecuteReader()
while ($sqlReader.Read()) { $sqlReader["TableName"] + ", " + $sqlReader["TriggerName"] + ", " + $sqlReader["CreationDate"] + ", " + $sqlReader["ModifyDate"]}
$connection.Close()
此代码不会加速您的数据库,但会向服务台提供有关数据库上设置的触发器的一些信息。他们可能会使用该信息进行进一步的故障排除。
答案 2 :(得分:1)
这是一个简单的SQL语句。无需在操作系统级别访问该框。只需像你的应用程序一样连接(或使用你最喜欢的工具“sql mgmt studio?”)并运行该SQL。
我看到的唯一警告是,您需要对这些对象的权限。你有吗?如果不确定,那么......运行它,看它是否允许你这样做。
而且,没有。该查询本身不会加速任何事情。也许这些人需要从查询中看到结果来做其他事情。这看起来像是解决方案的第一步。