我们有一个托管在异地的SQL Server实例,并且我们无法访问实际的服务器环境。我们需要尝试加快服务器的响应速度,他们的帮助台给我们发来了以下内容:
通过SQL通过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才能运行该代码吗?这段代码有意义吗?它会加速我们的数据库吗?
发布于 2018-06-01 03:13:20
您只需要能够从SSMS的本地实例连接到数据库服务器。在运行此查询之前,您只需输入“服务器名称”并向服务器进行身份验证。
您可能需要适当的权限才能运行这些语句。但是你可以试一试。
上面的查询获取触发器信息( TableName:在其上创建触发器的表名。TriggerName:上表创建的触发器名称。CreationDate:创建此触发器的日期时间ModifyDate:上次修改此触发器的日期时间。)如果触发器写入数据的Audit表非常大,则触发器可能会降低性能和响应时间。
发布于 2018-06-01 03:26:11
您可以使用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()
这段代码不会加速你的数据库,但是会给服务台提供一些关于你的数据库上设置的触发器的信息。他们可能会使用这些信息进行进一步的故障排除。
发布于 2018-06-01 03:04:32
这是一条简单的SQL语句。不需要在操作系统级别访问机器本身。只需像从应用程序中一样进行连接(或者使用您最喜欢的工具"sql mgmt studio?")并运行该SQL。
我看到的唯一警告是,您需要拥有对这些对象的权限。你有吗?如果不确定,那么.运行它,看看它是否允许您这样做。
还有,不。该查询本身不会加速任何事情。也许这些人需要查看查询的结果才能做其他事情。这看起来像是解决方案的第一步。
https://stackoverflow.com/questions/50631103
复制相似问题