Sql server 视图未绑定到架构?

Sql server 视图未绑定到架构?,sql-server,schema,views,Sql Server,Schema,Views,我有一个select查询从表中检索数据。它工作正常,但当有条件选择3个值时,它不会给出结果。错误消息 查询处理器耗尽了内部资源 我仔细查看了索引似乎工作正常,然后用select语句创建了视图,但无法创建索引。错误消息 视图没有模式绑定我猜您是在视图上而不是在基础表上创建索引。如果确实需要为视图编制索引,它必须满足以下条件: 为了创建索引视图,视图需要与视图所覆盖的实体进行模式绑定 要绑定视图架构,只需在视图创建/更新查询中指定simply useWITH SCHEMABINDING,例如: CR

我有一个select查询从表中检索数据。它工作正常,但当有条件选择3个值时,它不会给出结果。错误消息

查询处理器耗尽了内部资源

我仔细查看了索引似乎工作正常,然后用select语句创建了视图,但无法创建索引。错误消息


视图没有模式绑定

我猜您是在视图上而不是在基础表上创建索引。如果确实需要为视图编制索引,它必须满足以下条件:


为了创建索引视图,视图需要与视图所覆盖的实体进行模式绑定

要绑定视图架构,只需在视图
创建
/
更新
查询中指定simply use
WITH SCHEMABINDING
,例如:

CREATE VIEW MyView
WITH SCHEMABINDING 
AS
-- SELECT
有关架构绑定的更多信息,请参阅,或该语句的MSDN页

然而,从您所说的内容来看,我认为索引视图不一定会对您有所帮助-消息“查询处理器耗尽了内部资源”意味着查询处理器无法为您的查询生成执行计划,我猜这只会发生在极其复杂的查询中


您应该设法降低查询的复杂性。

模式绑定只允许两个部分名称。这意味着我们只能在数据库中绑定模式。这也意味着,如果我们想在跨数据库视图上使用索引视图,我们也不能这样做。这种限制很有意义,因为索引大体上是指向数据的指针的本地副本。如果目标是远程服务器,本地服务器将不知道索引所指向的内容在上次更新索引和尝试通过网络获取数据之间是否发生了变化