相关疑难解决方法(0)

为什么我不使用 SQL Server 选项“针对临时工作负载进行优化”?

我一直在阅读 Kimberly Tripp 撰写的一些关于 SQL Server 计划缓存的精彩文章,例如:http : //www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/

为什么甚至有“针对临时工作负载进行优化”的选项?这不应该一直开着吗?无论开发人员是否使用 ad-hoc SQL,为什么不在每个支持它的实例上启用此选项(SQL 2008+),从而减少缓存膨胀?

performance sql-server memory cache query-performance

50
推荐指数
4
解决办法
3万
查看次数

SQL Server - 在处理传递给存储过程的动态 WHERE 子句时如何防止 SQL 注入

鉴于以下存储过程,我能否在提供的附加WHERE条件下防止 SQL 注入?

CREATE PROCEDURE [dbo].[ProtectDynamicWhereClause]
   (@TableName varchar(50),
    @OldestRecordDate varchar(15),
    @WhereCondition varchar(250) = NULL)
AS
BEGIN
    -- Protect the table name from SQL Injection.
    DECLARE @TableNameClean varchar(150) = QUOTENAME(@TableName)

    DECLARE @sql nvarchar(4000)
    SET @sql = 
            N'
            SELECT * FROM ' + 'dbo.' + @TableNameClean
            + ' WHERE EntryAge > DATEDIFF(year, @OldestRecordDate, GETDATE()) '

    IF (@WhereCondition IS NOT NULL)
    BEGIN
        SET @sql = @sql + ' AND ' + @WhereCondition
    END               

    EXEC  sp_executesql @sql, N'@TableNameClean varchar(50), @OldestRecordDate varchar(15)', 
                                @TableNameClean …
Run Code Online (Sandbox Code Playgroud)

security sql-server parameter

4
推荐指数
1
解决办法
1794
查看次数

如何使用重新编译查找存储过程?

在我的数据库中,我有一些重新编译的存储过程

我找到它们的方式是:

SELECT OBJECT_NAME(ID)AS SP_NAME,* 
FROM SYSCOMMENTS
WHERE TEXT LIKE '%WITH RECOMPILE%'
Run Code Online (Sandbox Code Playgroud)

当我看:

select * from sys.procedures
Run Code Online (Sandbox Code Playgroud)

我发现没有重新编译的迹象。

有没有更好或更优雅的方法来找到重新编译存储过程?

sql-server stored-procedures metadata dmv sql-server-2016

3
推荐指数
1
解决办法
579
查看次数