【问题标题】:View is not schema bound?视图未绑定架构?
【发布时间】:2011-03-19 21:53:01
【问题描述】:

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

Query processor ran out of Internal resources

我查看了 INDEX 似乎工作正常,然后我使用该 select 语句创建了视图,但无法创建索引。错误信息;

View is not schema bound

【问题讨论】:

    标签: sql-server schema views


    【解决方案1】:

    为了创建索引视图,视图需要绑定到作为视图的实体的架构。

    要绑定视图架构,只需在视图CREATE / UPDATE 查询中指定使用WITH SCHEMABINDING,例如:

    CREATE VIEW MyView
    WITH SCHEMABINDING 
    AS
    -- SELECT
    

    有关架构绑定的更多信息,请参阅 this linkCREATE VIEW 语句上的 MSDN 页面。

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

    您应该尝试以某种方式降低查询的复杂性。

    【讨论】:

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

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

    http://technet.microsoft.com/en-us/library/cc917715.aspx

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 2014-08-05
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多