标签: warning

我应该对这个 NO JOIN PREDICATE 警告感到震惊吗?

我正在对性能不佳的存储过程的点点滴滴进行故障排除。程序的这一部分抛出了一个 NO JOIN PREDICATE 警告

select
    method = 
        case methoddescription 
            when 'blah' then 'Ethylene Oxide'
            when NULL then 'N/A'
            else methoddescription
        end,
    testmethod = 
        case methoddescription 
            when 'blah' then 'Biological Indicators'
            when NULL then 'N/A'
            else 'Dosimeter Reports'
        end,
    result = 
        case when l.res is null or l.res <> 1 then 'Failed'
        else 'Passed'
        end,
    datecomplete = COALESCE(CONVERT(varchar(10), NULL, 101),'N/A')
from db2.dbo.view ls
    join db1.dbo.table l
        on ls.id = l.id
    where item = '19003'
        and l.id = '732820'
Run Code Online (Sandbox Code Playgroud)

视图 ( …

sql-server execution-plan sql-server-2008-r2 warning

21
推荐指数
1
解决办法
5144
查看次数

SQL Server 何时会发出有关过多内存授予的警告?

产生“Excessive Grant”执行计划警告的条件是什么?

查询内存授予检测到“ExcessiveGrant”,这可能会影响可靠性。授权大小:初始 5128 KB,最终 5128 KB,已用 16 KB。

安全管理系统

SSMS计划

SSMS 属性

计划浏览器

计划浏览器

展示计划 xml

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>
Run Code Online (Sandbox Code Playgroud)

sql-server execution-plan warning memory-grant

21
推荐指数
1
解决办法
3195
查看次数

MySQL“语句可能不安全以语句格式登录”警告

以下 MySQL 警告的含义是什么:

Statement may not be safe to log in statement format.
Run Code Online (Sandbox Code Playgroud)

我的mysqld.err档案中每天都有数以万计的此类陈述,我不知道应该从哪里开始调查。

mysql replication log warning

5
推荐指数
1
解决办法
8276
查看次数

尽管持久计算列与持久计算列定义中的 UDF 性能受到影响,但隐式转换警告

我需要一个计算列来解决隐式转换问题。我有一个声明为 VARCHAR 的列,它应该只存储整数,但偶尔会被带有字符串的第三方应用程序错误填充,因此该列需要保持原样。

该表通常连接到一个将该值存储为 INT 的表。我定义了一个 PERSISTED 计算列,用于将该 VARCHAR 转换为 INT:

[iOrderNumber] AS (CONVERT([int],
case
   when [ordernumber] like '#%' then (-99) when isnumeric([ordernumber])=(0) then (-99) 
   when CONVERT([bigint],[ordernumber],(0))>(2147483647) then (-99)
   else [ordernumber]
end,(0))) PERSISTED NOT NULL
Run Code Online (Sandbox Code Playgroud)

使用计算列上的适当索引,现在可以连接到 INT 列的查询的性能显着提高。但是,即使在更新表而不是读取表时发生转换,执行计划仍会显示隐式转换警告。

我尝试在计算列定义中使用 UDF 来消除警告(我找到了一篇建议这样做的博客文章),但随后我的查询的执行时间更长,并且使用了更多的 CPU,尽管逻辑读取保持不变。但是 UDF 确实消除了警告。

除了错误之外,还有其他理由考虑警告吗?是否有理由将优化器对使用 UDF 定义的持久计算列的处理视为错误?

更重要的是,有没有办法摆脱警告,而不会招致 UDF 解决方案的性能损失?

我考虑使用触发器和包含数据的 VARCHAR 和 INT 版本的转换表,而不是使用计算列,但这似乎是很多不必要的开销。

sql-server functions warning computed-column

5
推荐指数
2
解决办法
889
查看次数

插入 1 个错误值 -&gt; 错误;插入 2 个错误值 -&gt; 警告!

CREATE TABLE `dummy` (
    `a` TINYINT(4) NOT NULL
) ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)

1 错误值

INSERT INTO `dummy` (`a`) VALUES (NULL);
/* SQL Fehler (1048): Column 'a' cannot be null */
/* Nothing is stored! */
Run Code Online (Sandbox Code Playgroud)

2个错误的值

INSERT INTO `dummy` (`a`) VALUES (NULL), (NULL);
/* Affected rows: 2  Gefundene Zeilen: 0  Warnungen: 2  Dauer von Abfrage: ... sec. */
SHOW WARNINGS LIMIT 5; /* Not sure where this comes from! Maybe HeidiSQL? */
/* Two entries are stored! */
Run Code Online (Sandbox Code Playgroud)

为什么 MySQL 会在单值查询中引发错误,而在具有两个值的第二个查询中却没有?

它与 …

mysql insert errors warning mysql-5.6

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