WITH 通用表表达式与 CREATE VIEW 性能

2024-01-06

我有几个查询使用WITH子句或公共表表达式以及UNION ALL语句来重复遍历SQL Server中具有树状结构的表,如所述here http://www.webinade.com/web-development/creating-recursive-sql-calls-for-tables-with-parent-child-relationships。如果我要创建相同的视图而不是将其包含在WITH子句中并在每次运行查询时生成它,我会看到性能上的差异吗?由于在多个查询中使用了视图,因此实际创建视图通常会被认为是好的做法吗?


你正在看的是一个公用表表达式 http://msdn.microsoft.com/en-us/library/ms190766.aspx而不是一个View http://msdn.microsoft.com/en-us/library/ms187956.aspx。如果你正在做递归 http://msdn.microsoft.com/en-us/library/ms186243.aspx,您需要坚持使用 CTE,而不是尝试将其滚动到视图中。

MS SQL 中的视图不会给您带来任何性能优势,除非您创建聚集索引 http://msdn.microsoft.com/en-us/library/ms187864.aspx在他们。从你的提问来看,情况并非如此。您最好将 CTE 封装在存储过程 http://msdn.microsoft.com/en-us/library/ms190782.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WITH 通用表表达式与 CREATE VIEW 性能 的相关文章

  • 循环中的递归算法复杂度(运行时间)

    我想了解您对如何检测以下递归算法的 T n 运行时间 的意见 Charm 是一种用于发现事务数据库中频繁闭项集的算法 频繁闭项集列表是在一组交易 tids 中多次出现的频繁项 例如面包和牛奶是经常一起购买的物品 它们是通过将索引为 i 的当
  • 最佳实践 - 存储过程日志记录

    如果您有一个长时间运行的 SP 您会以某种方式记录其操作还是只是等待此消息 命令成功完成 我认为 关于这个主题可以有很多解决方案 但是有没有最佳实践 一个经常使用的简单解决方案 EDIT 我发现了一个关于这个主题的有趣链接 http web
  • 按时间戳聚合

    搜索引擎优化 gt 搜索引擎优化 gt 付费 1 付费 gt 付费 gt 联盟 gt 付费 1 SEO gt 会员 1我有一个查询 结果包含客户 ID 号 营销渠道 时间戳和购买日期的数据 所以 结果可能看起来像这样 id marketin
  • 有人真正有效地实现了斐波那契堆吗?

    你们中有人曾经实施过斐波那契堆 http en wikipedia org wiki Fibonacci heap 几年前我就这样做了 但它比使用基于数组的 BinHeaps 慢了几个数量级 当时 我认为这是一个宝贵的教训 告诉我们研究并不
  • 在 SQL Server SELECT 语句中使用 CASE 时消除 NULL

    我有一份大而混乱的报告要写 它连接了 5 个表 一个表中有一列用于多个不同的值 本质上是一个 标签 列 其中标签根据用户想要使用的各种元数据的类型以创造性的方式使用 因此 我对报告的查询返回 3 个几乎相同的行 仅 标签 列有所不同 例如
  • 如何在分层类别树中找到我的节点及其祖先的所有兄弟节点?

    这是我的桌子 CREATE TABLE IF NOT EXISTS Category Name varchar 25 NOT NULL lft INT UNSIGNED NOT NULL rgt INT UNSIGNED NOT NULL
  • 如何在postgres中获取数组大小大于1的数组

    我有一个看起来像这样的表 val fkey num 1 1 1 1 2 1 1 3 1 2 3 1 我想要做的是返回一组行 其中值按 val 分组 并带有一个 fkey 数组 但仅限于 fkey 数组大于 1 的情况 因此 在上面的示例中
  • 仅基于月份和年份的 SQL Server 日期比较

    我无法确定仅根据月份和年份比较 SQL 中的日期的最佳方法 我们根据日期进行计算 由于计费是按月进行的 因此该月的日期会造成更多障碍 例如 DECLARE date1 DATETIME CAST 6 15 2014 AS DATETIME
  • 使用 LIMIT/OFFSET 运行查询并获取总行数

    出于分页目的 我需要使用以下命令运行查询LIMIT and OFFSET条款 但我还需要计算该查询将返回的行数 而不需要LIMIT and OFFSET条款 我想运行 SELECT FROM table WHERE whatever ORD
  • Python 2.x 与 3.x 速度

    我是一名博士生 使用 Python 编写我的研究代码 我的工作流程通常包括对代码进行小的更改 运行程序 查看结果是否有所改进 然后重复该过程 因此 我发现自己等待程序运行的时间比实际处理它的时间要多 我知道 这是一种常见的经历 我目前在我的
  • MySQL:为什么 IN 子句中的第 5 个 ID 会极大地改变查询计划?

    给出以下两个查询 Query 1 SELECT log id FROM log WHERE user id IN 188858 188886 189854 203623 204072 and type in 14 15 17 ORDER B
  • 内存分配/释放瓶颈?

    在典型的实际程序中 内存分配 释放的瓶颈有多大 欢迎来自性能通常很重要的任何类型的程序的答案 malloc free 垃圾收集的正确实现是否足够快 以至于它只是少数极端情况下的瓶颈 或者大多数性能关键型软件会从尝试减少内存分配量或拥有更快的
  • PLSQL 中的时区转换

    我需要将系统日期和时间转换为特定时区 例如东部时间 我无法假设我当前的时区 如何在plsql中转换它 请帮我 假设你有一个TIMESTAMP WITH TIME ZONE 例如systimestamp 您可以使用AT TIME ZONE句法
  • 将 SQL Server varBinary 数据转换为字符串 C#

    我需要帮助弄清楚如何转换来自SQL服务器表列设置为varBinary 最大 转换为字符串以便将其显示在标签中 这是在C 我正在使用数据读取器 我可以使用以下方式提取数据 var BinaryString reader 1 我知道该列包含之前
  • 数据库设计1对1关系

    我的数据库设计不正确 我应该在开发过程中解决这个问题吗 假定 user 表与 userprofile 表具有 1 1 关系 然而 实际设计中 用户 表与 用户配置文件 表具有 1 关系 一切正常 但无论如何应该修复它吗 做一件事 User
  • 如何删除实体框架6中的多对多关系

    如果将项目连接为多对多关系 则从数据库中删除项目时会出现问题 我的数据库看起来像 Project lt JobInProject gt Job ProjectID JobInProjectID JobID ProjectID JobID 主
  • 实验室数据与 Google Page Insight 的起源摘要之间的混淆

    任何知道 Core web Vitals 详细信息的人请帮我解决一些问题 How 起源总结与实验室数据不同吗 Speed Insight 如何获取起源摘要 这是同一页面或相似页面最近 28 天的总评分吗 我检查了具有相同内容的网站类别页面L
  • Cython:为什么 size_t 比 int 快?

    更改某些 Cython 变量的类型int输入size t可以显着减少某些功能的时间 30 但我不明白为什么 例如 cimport numpy as cnp import numpy as np def sum int cnp int64 t
  • 当您执行“SELECT *”时,SQL Server 如何确定列的顺序?

    当您执行以下操作时 SQL Server 如何确定列的顺序SELECT 我知道 订购依据 对于订购至关重要data 但我预计列名保持一致 注意 我的代码是not取决于返回列的实际顺序 我只想知道 SQL Server 如何决定对列名进行排序
  • Access 2013 SQL 中的转换和透视

    如何使用 TRANSFORM 和 PIVOT 函数从第一个表获取第二个表 TABLE 01 Config ID ConfigField ConfigValue 11 Name Basic 11 Version 1 01 11 Owner J

随机推荐

  • 使用 git/github 对 R 包进行版本控制?

    我在确定更新 github 上 R 包版本号的工作流程时遇到问题 以避免错误命名 中间 版本 这就是我现在所做的 提交并推送 例如版本 1 0 0 并将发行版设置为 1 0 0 提交并推送一些错误修复等 而不更改描述文件 最终决定我应该将版
  • git pull 实际上并没有从远程恢复我丢失的文件

    我一直在一个分支机构工作 我提交并将其推送到远程存储库 现在该分支上的一些文件丢失了 希望它们在远程分支上仍然可用 所以我尝试这样做git pull git pull origin feature my branch 然而 git表示所有内
  • Objective C - 隐藏 iVar

    这是我的问题 假设我有一个名为 WebServiceBase h 的类 我需要在该类中添加一个名为 NSString requestData 的 iVar 但我不需要将该 iVar 添加到头文件中并使其对外部人员可见 如果我将其作为类库分发
  • SQL在分割字符串后将数据插入到其他表中

    我有一张桌子WCA ID TYPE 1 1 3 5 2 1 5 现在我想将数据移动到新表WCA TYPE ID WCA ID TYPE 1 1 1 2 1 3 3 1 5 4 2 1 5 2 5 这里的ID是自动增加的 如何在 MS SQL
  • 数据更改时 LiveData 不更新

    我正在使用 LiveData 从服务器获取数据并观察它 我的onChanged 方法只在第一次被调用 当服务器中的数据更新时不会被调用 用户片段 UserViewModel userViewModel ViewModelProviders
  • 如何向 QMainWindow 添加背景图像?

    大家好 我是 QT 创建者的新手 我尝试了很多方法来设置 Q 主窗口的背景图像 我添加了一个带有图像的资源文件夹 我尝试在 UI 中使用 setstylesheet 添加并尝试对其进行编码 当我使用用户界面时 我可以看到图像 但当我运行它时
  • 具有多个命名空间的 VBA SelectSingleNode xpath

    我遇到了与其他人类似的问题 尝试通过具有两个命名空间的 XML 使用 xPath 进行搜索 但仍在查看其他主题 但它似乎不起作用 XML
  • 更新一类中的多个项目,而不仅仅是一个

    在此代码的更新部分中 只有第一个制作的蝙蝠受到 Bat 类中 update 的影响 主循环之外 START BAT COUNT 30 BAT IMAGE PATH os path join Sprites Bat enemy Bat 1 p
  • Kubernetes - 如果容器无法重新触发初始化容器,则强制 pod 重新启动

    我在我的 pod 中发现 如果容器因存活探针失败而失败或被终止 容器会重新启动 但 pod 不会 这意味着initContainers在容器崩溃的情况下不会再次运行 就我而言 我确实需要运行其中之一initContainers每次主容器失败
  • 我应该用什么来替换 hibernate 已弃用的 @TypeDef 和 @Type 注释?

    我刚刚将 Hibernate 使用的版本升级到 5 6 1 现在似乎弃用了一些与类型相关的注释 TypeDef name json typeClass JsonBinaryType class Type type json 我没有找到任何关
  • 使用 Inno Setup 安装隐藏文件

    我需要使用 Inno Setup 创建的安装程序在最终用户计算机上安装一组跨越多个文件夹的隐藏文件 我已经提到过在 Inno Setup 中复制隐藏文件 https stackoverflow com questions 34050206
  • 游戏中心与 Sprite Kit 集成?

    如何将 Game Center 或 GameKit Framework 与 Sprite Kit Xcode 模板结合使用 在Sprite套件中 它使用Scenes 但通常要查看排行榜 例如您需要 presentModalViewContr
  • 解决 C++ 对临时变量的非常量引用的限制

    我有一个 C 数据结构 它是其他计算所需的 暂存器 它的寿命不长 并且不经常使用 因此对性能不是至关重要的 然而 它在其他可更新的跟踪字段中包括一个随机数生成器 虽然生成器的实际值并不重要 但它is重要的是该值被更新而不是复制和重用 这意味
  • 如何使用 Google Plus 登录让用户登录 Firebase

    我喜欢在 FireBase 中使用 Google 加号进行身份验证 Google Plus 的signinCallback 返回一个auth 对象 如何使用此信息让我的用户安全登录 FireBase Auth auth 对象如下所示 acc
  • 固定页眉、页脚和侧边栏,滚动内容区域位于中心

    从这个开始演示模板 http jsfiddle net kFBuD 91 我想创建这个布局 但我有以下问题 两个侧边栏不包含在可滚动内容 div 内 内容div不采用固定大小 可滚动内容溢出时不呈现滚动条 最好使用浏览器的主滚动条 有人可以
  • 如何在 Android 中显示组合框? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 Android 中显示组合框 在 Android 中 它被称为 Spinner 您可以在此处查看教程 你好 旋转者 https
  • AngularJS 中的授权标头不起作用

    我正在为我的 API 使用 Django REST 令牌身份验证 我发布了我的凭据来获取令牌端点 但是 当我尝试以正确的方式设置标头时 它会不断响应 http 401 错误 我尝试使用curl X GET http 127 0 0 1 80
  • Vuetify:创建链接到另一个页面的图像

    我正在尝试在我的 vue 应用程序中创建图像链接 我已尝试以下方法 但它不起作用
  • 如何在iPhone sdk中设置UIWebView的背景颜色

    我已将背景色作为图像添加到 uiwebview 中 但它出现在 Web 视图的背面而不是 Web 视图中 网络视图始终为白色视图 我无法更改它 myView UIView alloc initWithFrame UIScreen mainS
  • WITH 通用表表达式与 CREATE VIEW 性能

    我有几个查询使用WITH子句或公共表表达式以及UNION ALL语句来重复遍历SQL Server中具有树状结构的表 如所述here http www webinade com web development creating recurs