本文介绍了SqlDependency 有哪些限制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用一个表作为消息队列,并通过使用 SqlDependency注册"更新.在我读到的任何地方,人们都在说注意它的局限性",但并没有具体说明它们是什么.从我收集到的信息来看,当表的更新频率非常高时,您会遇到问题;幸运的是,我每分钟最多只查看 10 - 20 个值.
I am using a table as a message queue and "signing up" for updates by using a SqlDependency. Everywhere I read, people are saying "look out for the limitations of it" but not specifically saying what they are. From what I've gathered, you will have problems when the table has very high update frequency; fortunately, I'm only looking at 10 - 20 values per minute maximum.
对 SqlServer 的其他限制/影响是什么?
What are the other limitations/impact on the SqlServer?
推荐答案
我能找到的最完整的列表 (从这里)如下:
The most complete list I can find (from here) is as follows:
- SELECT 语句中的投影列必须明确说明,并且表名必须由两部分名称限定.请注意,这意味着语句中引用的所有表必须在同一个数据库中.
- 该语句不得使用星号 (*) 或 table_name.* 语法来指定列.
- 该语句不得使用未命名的列或重复的列名.
- 该语句必须引用一个基表.
- 该语句不得引用带有计算列的表.
- SELECT 语句中的投影列可能不包含聚合表达式,除非该语句使用 GROUP BY 表达式.当提供 GROUP BY 表达式时,选择列表可能包含聚合函数 COUNT_BIG() 或 SUM().但是,不能为可为空的列指定 SUM().该语句不能指定 HAVING、CUBE 或 ROLLUP.
- SELECT 语句中用作简单表达式的投影列不得出现多次.
- 该语句不得包含 PIVOT 或 UNPIVOT 运算符.
- 该语句不得包含 UNION、INTERSECT 或 EXCEPT 运算符.
- 该语句不得引用视图.
- 该语句不得包含以下任何内容:DISTINCT、COMPUTE 或 COMPUTE BY 或 INTO.
- 该语句不得引用服务器全局变量 (@@variable_name).
- 该语句不得引用派生表、临时表或表变量.
- 该语句不得引用来自其他数据库或服务器的表或视图.
- 该语句不得包含子查询、外连接或自连接.
- 该语句不得引用大对象类型:text、ntext 和 image.
- 该语句不得使用 CONTAINS 或 FREETEXT 全文谓词.
- 该语句不得使用行集函数,包括 OPENROWSET 和 OPENQUERY.
- 该语句不得使用以下任何聚合函数:AVG、COUNT(*)、MAX、MIN、STDEV、STDEVP、VAR 或 VARP.
- 该语句不得使用任何非确定性函数,包括排名和窗口函数.
- 该语句不得包含用户定义的聚合.
- 该语句不得引用系统表或视图,包括目录视图和动态管理视图.
- 声明不得包含 FOR BROWSE 信息.
- 该语句不得引用队列.
- 该语句不得包含无法更改且无法返回结果的条件语句(例如,WHERE 1=0).
- 该语句不能指定 READPAST 锁定提示.
- 该语句不得引用任何 Service Broker QUEUE.
- 该语句不得引用同义词.
- 该语句不得具有基于双精度/实数数据类型的比较或表达式.
- 该语句不得使用 TOP 表达式.
补充参考:
这篇关于SqlDependency 有哪些限制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!