删除索引后是否应该重新编译表?

2024-01-17

我正在删除一些未使用的索引。

我通常做的是:

  1. 确保统计信息已更新 - 也许索引尚未使用,因为统计信息已经有一段时间没有更新了

  2. 为每个涉及的索引生成删除索引脚本和创建索引脚本

  3. 运行删除索引命令

  4. update statistics tablename-- 以便更新用于生存的表索引的统计信息

  5. sp_recompile 'tablename'索引曾经所在的位置

问题:我真的需要执行 sp_recompile 吗? 有什么建议么?

http://msdn.microsoft.com/en-us/library/ms181647.aspx http://msdn.microsoft.com/en-us/library/ms181647.aspx


删除/重建索引将导致使用此表/索引视图的任何缓存执行计划无效。并且sql server将在下次执行时生成新的执行计划。

统计信息也是如此,更新统计信息将导致任何缓存的执行计划失效。并且sql server将在下次执行时生成新的执行计划。

不明白为什么您会明确告诉 sql server 使用此对象(表、视图等)重新编译执行计划。

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

删除索引后是否应该重新编译表? 的相关文章

随机推荐

  • Python 线程 - 让线程启动而不等待前一个线程完成

    我希望所有线程同时启动 但在我的代码中 它会等待前一个线程完成其进程 然后再启动新线程 我希望所有线程并行启动 My Code class Main object start True config True givenName True
  • BERT 输出解释

    BERT编码器输出的关键是default encoder outputs pooled output and sequence output 据我所知 encoder outputs是每个编码器的输出 pooled output是全局上下文
  • 如何在 servlet 中使用 GSON 解析此 JSON 字符串

    如何解析这个 JSON 字符串以在 servlet 中创建集合对象 title 1 2 amount 1 3 我的 servlet 中的内部类 public class Data private List
  • 创建 iPhone 通用二进制文件时如何测试常量是否存在

    我正在尝试创建一个通用二进制文件 它支持 iPhone 4 上的多任务处理 并且仍然可以在 iPad 上运行 我知道如何通过使用 NSClassFromString 和 respondToSelector 检查类是否存在来避免不同版本的 i
  • 在 App Hub 之外销售 Windows Phone 7 应用程序

    是否可以在 Microsoft App Hub 之外 合法 销售 WP7 应用程序 这有许可证限制吗 以这种方式进行应用程序分发是否理想 即 WP7 用户是否可以轻松访问其他站点 服务来查找新应用程序 严格来说 我不知道有任何限制来防止在市
  • Latex:以罗马数字打印变量

    我正在 LaTeX 中排版 我想用罗马语而不是默认的阿拉伯语显示一个 变量 在我的例子中 是对列表中项目编号的引用 ref blah 是否有捷径可寻 感谢您的指点 你可以试试 def theenumi roman enumi 里面一个enu
  • 为什么不以同样的方式处理所有这些变量?

    我正在检查 VB NET 中变量声明的位置并不重要 除了范围之外 对于这个问题 https stackoverflow com q 13259999 256431 我想我最好检查一下当它们被 提升 到闭包时会发生什么 我还没有阅读规范 但我
  • 如何使用宏获取 Word 文档的当前文件名(不带扩展名或完整路径)?

    我有代码可以提取文件的完整路径 减去扩展名 并且我正在尝试将其修改为仅存储文件名 再次不包含扩展名 Sub ShowFilename Dim pathName As String With ActiveDocument If Len Pat
  • 运行 .msi 安装程序后能否确定生成的命令行?

    如果我想要静默安装 是否有任何简单的方法来运行安装程序 选择所需的选项 然后确定等效安装所需的 msiexec 选项 开关 最好没有实际安装任何东西 不要点击 完成 或者您可以通过挖掘 MSI 数据库来找到所需的属性吗 是的 听起来您需要创
  • 如何保证VirtualAlloc分配的虚拟内存地址在2-4GB之间

    我尝试使用while 但是效果不是很好 有什么办法可以做到吗 bool found false uintptr t memaddr 0 int n 0 while found n lt 10 n 1 memaddr uintptr t Vi
  • 使用 AWS Glue ETL 将多个 parquet 文件合并到 AWS S3 中的单个 parquet 文件 python Spark (pyspark)

    我每 15 分钟运行一次 AWS Glue ETL 作业 每次在 S3 中生成 1 个 parquet 文件 我需要创建另一个作业以在每小时结束时运行 以使用 AWS Glue ETL pyspark 代码将 S3 中的所有 4 个 par
  • COM 与 .NET 6 互操作

    我们有一个用 C 编写的 NET 类库 我们正在尝试将其从 NET Framework v2 0 升级到 NET 6 在 NET 2 0 中 该库通过导入该库的 TLB 的 C 代码进行实例化 使用 为了使用 COM 使用 NET 6 库
  • HTML:更改

    的高度

    如何指定插入空行的高度 p 创造 在您的样式表或样式表部分中 定义以下内容 示例 p margin top 0 6em margin bottom 0em 您也可以在单独的标签中指定它 p p style margin top p
  • 由于“Binder 线程池”,应用程序未在模拟器上运行

    我正在尝试在模拟器上打开应用程序 但无法 在 Logcat 上我得到了这个 10 07 00 23 49 443 1268 1268 E hwservicemanager BINDER SET INHERIT FIFO PRIO faile
  • 如何将这个十六进制字符串转换为长字符串?

    我有 0xE94C827CEB 十六进制但作为字符串 即 1002011000043 dd mm yyyy HH mm ss 不幸的是 如果我只有字符串格式 我不知道如何进行转换 并且我没有 Convert ToLong 0xE94C827
  • usemin revved 文件名和 requirejs 依赖项

    我在 requirejs 和 usemin 中遇到以下问题 我想设置一个多页面应用程序 在其中动态加载仅包含页面特定功能的模块 例如 about gt about js home gt home js 我可以继续将所有内容打包在一个文件中
  • 带有名为“PropertiesController”的控制器的 ASP.NET MVC 路由[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在尝试使用名称为 PropertiesController 的控制器 以及随后的路由 时遇到了一个棘手的问题 请耐心等
  • 如何从命令行运行 R 脚本文件

    我知道关于这个问题有很多问题 但我已经尝试了一切 我想我只是不明白命令行在 Windows 中是如何工作的 我的桌面上的文件夹中保存了一个文件 比方说 C Users abika 000 Desktop R models myfile R
  • urwid - 无限循环的输出屏幕

    我正在尝试制作一个简单的 urwid 作为无限循环的输出屏幕 它需要输出来自另一个类的数据 我现在找到的解决方案是 有一个 Printer 类 实际输出类的测试替换器 和queue属性 当需要显示某些内容时 会将其附加到queue 然后 有
  • 删除索引后是否应该重新编译表?

    我正在删除一些未使用的索引 我通常做的是 确保统计信息已更新 也许索引尚未使用 因为统计信息已经有一段时间没有更新了 为每个涉及的索引生成删除索引脚本和创建索引脚本 运行删除索引命令 update statistics tablename