首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CONVERT_IMPLICIT效应

CONVERT_IMPLICIT效应
EN

Stack Overflow用户
提问于 2012-01-21 17:33:19
回答 1查看 250关注 0票数 0

在我们正在开发的应用程序中,有一个场景,其中调用存储过程来声明会话。在螺母壳中,此SP根据输入参数检查会话,并删除会话if (从规范中提取)。

如果存在以下条件,则删除会话行:(EXPIRES > SYSUTCDATETIME()).未过期的会话行

下面是执行此任务的代码:

代码语言:javascript
复制
DELETE SESSIONS
WHERE SESSION_ID = @p_session_id
  AND EXPIRES > SYSUTCDATETIME();

SESSION_ID列是PK,具有默认的聚集索引。数据类型是unique标识符。EXPIRES的数据类型为datetimeoffset(0)

这是一个问题- Server执行一个CONVERT_IMPLICIT,这会导致索引扫描。更糟糕的是,客户拒绝共享有关DB的元数据,我不知道生产版本有多少行数据。客户认为,无论最终DB大小如何,代码都需要尽可能高效。

除了使用强制转换来显式地将SYSUTCDATETIME()转换为datetimeoffset(0)之外,有没有解决这个问题的方法?

谢谢,

拉杰

EN

回答 1

Stack Overflow用户

发布于 2012-01-21 17:49:27

可能会更好:

代码语言:javascript
复制
DELETE SESSIONS
WHERE SESSION_ID = @p_session_id
  AND EXPIRES > SYSDATETIMEOFFSET();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8955070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档