首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

您是否应该在单个查询上同时使用“重新编译”和“优化”这两个选项?

在单个查询上同时使用“重新编译”和“优化”这两个选项是不必要的。这两个选项都是用于优化查询性能的工具,但它们的作用和使用场景有所不同。

“重新编译”选项用于告诉数据库系统在执行查询之前重新编译查询计划。查询计划是数据库系统根据查询语句生成的执行计划,用于确定如何获取和处理数据。重新编译查询计划可以帮助数据库系统根据当前的数据统计信息和系统状态来生成更优化的执行计划,从而提高查询性能。然而,重新编译查询计划需要消耗额外的计算资源和时间,因此在大多数情况下,只有在查询性能明显下降或数据统计信息发生重大变化时才需要使用该选项。

“优化”选项是数据库系统的一个全局设置,用于启用或禁用查询优化器的优化功能。查询优化器是数据库系统的一个重要组件,负责根据查询语句和数据统计信息生成最优的查询计划。启用优化功能可以让数据库系统更好地利用索引、选择合适的连接方式、重排查询顺序等,从而提高查询性能。然而,优化功能可能会增加查询计划生成的时间,因此在某些情况下,禁用优化功能可能会更适合,例如在一些简单的查询或对实时性要求较高的场景下。

综上所述,同时使用“重新编译”和“优化”选项在大多数情况下是不必要的。如果查询性能有明显下降或数据统计信息发生重大变化,可以考虑使用“重新编译”选项来生成新的查询计划。而对于优化功能,则可以根据具体情况来决定是否启用或禁用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

冻结计划

大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。...运行查询并冻结计划。更改软件。使用%NOFPLAN关键字重新运行查询(这会导致冻结的计划被忽略)。比较这两个查询的性能。...系统将检测到这是SQL语句在新版本的第一次准备/编译,并自动将计划状态标记为冻结/升级,并将现有计划用于新的准备/编译。这确保使用查询计划不会比以前版本的查询计划差。...冻结计划按钮:单击此按钮将冻结此语句的查询优化计划。冻结计划并编译该SQL语句时,SQL编译使用冻结的计划信息并跳过查询优化阶段。...冻结的计划可能会因以下任一操作而与当前计划不同: 重新编译该表或该表引用的表 使用SetMapSelecability()激活或停用索引 在表运行TuneTable 升级InterSystems软件版本

1.9K10

优化查询性能(四)

注释选项指定查询优化器在编译SQL查询期间使用选项。 通常,注释选项用于覆盖特定查询的系统范围默认配置。 语法 语法/*#OPTIONS */(在/*#之间没有空格)指定了一个注释选项。...但是,同时指定单个字段一个或多个聚合函数的“多行”查询不会执行并行处理,除非它包含GROUP BY子句。...InterSystems IRIS在优化查询后决定是否对该查询使用并行处理,并应用其他查询优化选项(如果指定)。RIS可以确定优化形式的查询不适合并行处理,即使用户指定的形式的查询似乎受益于并行处理。...%PARALLEL%INORDER优化不能同时使用; 如果两者都指定,%PARALLEL将被忽略。 查询引用一个视图并返回一个视图ID (%VID)。...导致缓存查询被清除的典型情况是调用$SYSTEM.SQL.Purge()或重新编译查询引用的类。 重新编译类将自动清除与该类相关的任何缓存查询。 如果发生此错误,再次运行查询可能会成功执行。

2.7K30
  • 如何在Ubuntu 14.04安装OpenLiteSpeed Web服务器

    它具有Apache兼容的重写规则,Web管理界面以及针对服务器优化的自定义PHP处理。 在本指南中,我们将演示如何在Ubuntu 14.04服务器安装配置OpenLiteSpeed。...先决条件目标 在开始之前,应该在服务器配置非root用户帐户,并具有sudo权限。...没有服务器的同学可以在这里购买,不过我个人更推荐使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。 本教程将指导完成在服务器编译,安装配置OpenLiteSpeed实例的过程。...默认情况下,PHP包含在OpenLiteSpeed中,但可能不是的应用程序的正确版本。由于OpenLiteSpeed使用特别优化的PHP实例,因此如果需要不同的版本,则必须使用管理界面对其进行编译。...您可以通过转到“操作>编译PHP”来选择选项。界面将引导完成整个过程。 结论 此时,应该在Ubuntu 14.04服务器安装并运行OpenLiteSpeed(包含PHP)MySQL。

    1.1K00

    一篇文章回答你关于NVIDIA DLA的所有疑问

    kCHW16 (FP16) kCHW32 (INT8) 格式在 DLA GPU 很常见;但是,默认格式并不相同。因此,请确保使用普遍支持的张量格式以避免重新格式化开销。...这意味着增加了额外的 GPU 工作负载(因为 GPU 正忙于重新格式化)。要减少这种情况,您可以使用DLA的无重新格式化 I/O 选项。...是否可以在两个 DLA 核心上同时运行多个网络? 是的,可以在两个 DLA 同时运行多个网络(因此模型 A 在第一个实例运行,模型 B 在第二个实例运行)。...事实,您可以在 GPU DLA 核心上同时运行多个网络。...如果您想在同一进程中使用 2 个 DLA 核心,请使用 TensorRT API。 多个模型可以在单个 DLA 运行吗? 是的,您可以按顺序在单个 DLA 核心上运行多个模型。

    4.3K10

    解释SQL查询计划(二)

    将Plan Timestamp与包含该语句的例程/类的datetime值进行比较,可以知道,如果再次编译该例程/类,它是否使用了相同的查询计划。...上次编译时间Last Compile Time:例程的上次编译时间或准备时间。如果SQL语句解冻,重新编译MAC例程会同时更新此时间戳Plan时间戳。...如果SQL语句已冻结,则重新编译MAC例程仅更新此时间戳;在解冻计划之前,Plan时间戳不会更改;然后Plan时间戳将显示计划解冻的时间。...语句使用以下关系部分列出了一个或多个用于创建查询计划的定义表。对于使用查询从另一个表提取值的INSERT,或者使用FROM子句引用另一个表的UPDATE或DELETE,这两个表都在此处列出。...上次编译时间Last Compile Time:表(持久化类)上次编译的时间。 Classname:与表关联的类名。 本节包括用于重新编译类的编译选项

    1.7K20

    万万没想到,Redis多线程版本竟然比原生版本快那么多

    您可能会问,与在单个节点多线程化相比,在群集中运行许多Redis 节点是否可以获得比单线程多线程更多的吞吐量?您可以像 Redis 一样对 KeyDB 进行分片,这对数据库进行水平扩展很有意义。...同时还可以可以将线程固定到某个CPU以得到进一步的提升,但最适合的选择可能取决于的设置。默认情况下,此选项是禁用的。...多线程架构 KeyDB 通过在多个线程运行常规的 Redis 事件循环来工作。网络 IO 查询解析是同时进行的。每个连接在 accept() 分配一个线程。自旋锁保护对核心哈希表的访问。...未来的工作包括允许在连接之后重新平衡与不同线程的连接,并允许多个读取器同时访问哈希表 进一步优化设置 此外,KeyDB 还提供了一些有助于简化用户体验的功能。...您将获得很高的可用性,同时最大限度地利用资源。如果尚未平衡对副本节点的读取,则可以使用选项将吞吐量提高一倍。

    72020

    xBIM 基础02 快速入门

    xml)IFC版本(IFC2x3,IFC4)。使用此静态函数,它还决定是否使用内存模型或Esent数据库来存储数据。您可以使用其他参数来明确说出您想要的内容。您还可以传入将报告进度的委托。...还要确保为创建的模型使用正确的模式名称空间,因为无法在单个模型中混合来自多个模式的数据。...这是您在模型中获取,更改创建新实体的访问入口。要创建任何新对象,请使用此模板化函数。 【始终必须指定要创建的非抽象类型。这是在xBIM中构建的,如果不这样,就会出现编译时错误。...如果知道所需的类型,则应始终指定它以提高性能。对于所有搜索查询,您还可以使用接口来检索实体。我们在IFC2x3实体实现了IFC4接口,这意味着您可以使用单个代码库查询IFC2x3IFC4 。...使用所有这些基本的东西,的第一个简单代码可能如下所示。因为它使用Xbim.Ifc4.Interfaces,此代码将同时适用于IFC2x3IFC4。

    82830

    OpenGL ES编程指南(四)

    这个内部循环的目标是平衡工作负载,以便CPUGPU并行工作,防止应用程序OpenGL ES同时访问相同的资源。在iOS,修改OpenGL ES对象在帧的开始或结束没有执行修改时可能很昂贵。...应该在应用的发布版本中省略对这些功能的调用。 使用OpenGL ES来管理的资源 许多OpenGL数据可以直接存储在OpenGL ES渲染上下文及其相关的共享组对象中。...使用双缓冲来避免资源冲突 当的应用程序OpenGL ES同时访问OpenGL ES对象时,会发生资源冲突。...这两个选项都是安全的,但每个选项都可能成为应用程序的瓶颈。 图6-7显示了这个问题。 在这个例子中,有一个纹理对象,OpenGL ES和你的应用都想使用它。...双倍三倍缓冲折衷消耗额外的内存,以防止管道堵塞。 额外使用内存可能会对应用程序的其他部分造成压力。 在iOS设备,内存可能非常稀少; 的设计可能需要使用更多内存与其他应用程序优化进行平衡。

    1.9K20

    高性能 MySQL 第四版(GPT 重译)(三)

    静态优化与值无关,例如 WHERE 子句中常量的值。它们可以执行一次,并且在使用不同值重新执行查询时始终有效。您可以将其视为“编译优化”。...如果知道优化器没有给出好的结果并且知道原因,您可以帮助它。一些选项包括向查询添加提示,重写查询重新设计模式或添加索引。...在同一表上进行 SELECT UPDATE MySQL 不允许您在从表中SELECT的同时对其运行UPDATE。这实际不是一个优化器的限制,但了解 MySQL 如何执行查询可以帮助您解决问题。...在此过程中,没有理由同时启用或禁用这两个变量。 ⁷ 这通常适用于您可能使用 LVM 快照或基于云的磁盘快照方法进行备份的情况。...以下是我们决定不在此处包括但绝对应该在整体备份恢复策略中包括的一些要点: 安全性(备份访问权限、恢复数据权限以及文件是否需要加密) 备份存储位置,包括与源站点的距离(在不同磁盘、不同服务器或异地

    16510

    「数据仓库技术」怎么选择现代数据仓库

    如果使用的数据集的范围是数百tb或pb,那么强烈建议使用非关系数据库。这类数据库的架构支持与庞大的数据集的工作是根深蒂固的。 另一方面,许多关系数据库都有非常棒的经过时间验证的查询优化器。...只要的数据集适合于单个节点,您就可以将它们视为分析仓库的选项。...在一次查询同时处理大约100TB的数据之前,Redshift的规模非常大。Redshift集群的计算能力将始终依赖于集群中的节点数,这与其他一些数据仓库选项不同。...ETL vs ELT:考虑到数据仓库的发展 Snowflake构建在Amazon S3云存储,它的存储层保存所有不同的数据、表查询结果。...谷歌BigQuery提供可伸缩、灵活的定价选项,并对数据存储、流插入查询数据收费,但加载导出数据是免费的。BigQuery的定价策略非常独特,因为它基于每GB存储速率查询字节扫描速率。

    5K31

    预告!Zabbix6.0 十大新功能详解!

    Zabbix 能够在单个 Zabbix 实例监控超过 100k 的服务。 对于我们的业务服务监控示例,我们使用了一个网站,它依赖于多个组件,例如网络连接、数据库后端、应用程序服务器等。...这将帮助用户识别特定操作中的更改内容; Zabbix 6.0 LTS审核日志重新设计的目标是为了提供更可靠更详细的审计日志信息,同时最大化的降低对Zabbix性能的潜在影响: · Zabbix 前端...在Zabbix 6.0 LTS版本中增加了许多新的可视化选项同时也对现有的可视化功能进行了优化。...其他优化内容 但这还不是全部!Zabbix 6.0 LTS还有更多的功能改进等着。...我们还引入了数据库后端方面的改进——从对现有查询/逻辑的改进,到为历史数据表引入主键,目前我们仍在广泛测试。 3 问:如果您有一些预处理的高级规则,您是否仍然可以手动更改信息类型?

    1.5K30

    定义构建索引(四)

    %SYS.Maint.Bitmap实用程序方法同时压缩位图索引位片索引,从而提高了还原效率。...要重建单个索引:单击索引按钮以显示现有索引。每个列出的索引都有重建索引的选项。 注意:当其他用户正在访问表的数据时,不要重建索引。要在活动系统重建索引,请参阅在活动系统构建索引。...因此,关闭索引的MapSelecability对已经编译的嵌入式SQL查询没有任何影响。因此,嵌入式SQL查询仍可能尝试使用禁用的索引,并将给出不正确的结果。...对于现有索引:清除任何引用该表的缓存查询。索引构建执行的第一个操作是终止索引。因此,在重新生成索引时,不能依赖任何经过优化使用该索引的代码。...这将消除在此程序中创建的缓存查询,这些查询无法使用索引,因此不如使用索引的相同查询最佳。 这就完成了这个过程。索引已完全填充,查询优化器能够考虑该索引。

    77030

    优化查询性能(一)

    可以使用以下选项来指导查询优化器,方法是设置配置默认值或在查询代码中编码优化器“提示”: 管理所有条件的子句选项中提供的索引优化选项,或单个条件前面的%NOINDEX。...SQL代码中指定的注释选项,使优化器覆盖该查询的系统范围编译选项。 在每个查询或系统范围的基础可用的并行查询处理允许多处理器系统在处理器之间划分查询执行。...在“SQL语句冻结计划”一章中。 冻结计划以保留嵌入式SQL查询的特定编译使用编译,而不是使用较新的编译。在“SQL语句冻结计划”一章中。...激活统计信息收集后,必须重新编译(准备)现有的动态SQL查询,并重新编译包含嵌入式SQL的类例程。...从0到1:更改SQL Stats选项后,需要编译包含SQL的例程类以执行统计代码生成。对于xDBC动态SQL,必须清除缓存查询以强制重新生成代码。

    2K10

    SQL命令 CREATE INDEX(二)

    更改此选项需要重新编译命名空间中的所有类并重新构建所有索引。 转到Management Portal,选择Classes选项,为存储的查询选择名称空间,并使用Compile选项重新编译相应的类。...) 设置一个系统范围的配置参数,在编译时检查该限制,确定是否允许在%Storage.SQL中定义位图索引。...不应在WHERE子句中使用位片索引,因为SQL查询优化器不使用位片索引。 使用INSERT、UPDATE或DELETE操作填充维护位片索引比使用位图索引或常规索引慢得多。...在频繁更新的字段使用多个位片索引/或使用位片索引可能具有显著的性能代价。 位片索引只能用于系统分配的行ID为正整数值的记录。位片索引只能用于单个字段名。不能指定WITH DATA子句。...如果不这样做,可能会导致查询结果不准确。有关更多详细信息,请参阅在活动系统构建索引。 可以按如下方式构建/重新构建索引: 使用构建索引SQL命令。 使用管理门户重建指定类(表)的所有索引。

    66220

    优化表(一)

    优化表计算的值包括扩展大小、选择性、异常值选择性、平均字段大小块计数 导出重新导入优选表统计数据 扩展大小、选择性块数(ExtentSize, Selectivity, and BlockCount...BlockCount 当编译一个持久化类时,类编译器会根据区段大小属性定义计算每个SQL映射使用的映射块的大致数量。...可以在调优表工具的Map BlockCount选项卡中查看这些BlockCount值。 块计数在调优表中由类编译器估计。...可以指定该调优表,使用此信息更新与表及其每个字段相关联的元数据。 查询优化器随后可以使用这些统计信息来确定最有效的查询执行计划。 在外部表使用Tune Table将只计算区段大小。...因此,如果tableAtableB中的行比从1000:2000更改为10000:2000,可能在一个或多个表重新运行tune Table,但如果更改为2100:4000,则不需要重新运行tune Table

    1K20

    ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理)

    优化查询语句 ASP.NET中ADO连接消耗的资源相当大,SQL语句运行的时间越长,占用系统资源的时间也越长。因此,尽量使用优化过的SQL语句以减少执行时间。...比如,不在查询语句中包含子查询语句,充分利用索引等。 2. 字符串操作性能优化   使用值类型的ToString方法   在连接字符串时,经常使用"+"号直接将数字添加到字符串中。...因此,应用程序开发人员可以根据应用程序所使用的功能,优化更改其中的某些配置,以提高应用程序的性能。下面的列表是应该考虑的一些选项。   仅对需要的应用程序启用身份验证。...使用托管 SQL Server 提供程序时,可通过使用编译的存储过程而不是特殊查询获得额外的性能提高。 10....更改页面会导致重新分析编译该页,而替换 \bin 目录中的程序集则会导致完全重新编译该目录。

    2.7K100

    【性能优化】ASP.NET常见性能优化方法简述

    优化查询语句 ASP.NET中ADO连接消耗的资源相当大,SQL语句运行的时间越长,占用系统资源的时间也越长。因此,尽量使用优化过的SQL语句以减少执行时间。...比如,不在查询语句中包含子查询语句,充分利用索引等。 2. 字符串操作性能优化 使用值类型的ToString方法 在连接字符串时,经常使用"+"号直接将数字添加到字符串中。...因此,应用程序开发人员可以根据应用程序所使用的功能,优化更改其中的某些配置,以提高应用程序的性能。下面的列表是应该考虑的一些选项。 仅对需要的应用程序启用身份验证。...使用托管 SQL Server 提供程序时,可通过使用编译的存储过程而不是特殊查询获得额外的性能提高。   10....更改页面会导致重新分析编译该页,而替换 \bin 目录中的程序集则会导致完全重新编译该目录。在包含许多页面的大规模站点,更好的办法可能是根据计划替换页面或程序集的频繁程度来设计不同的目录结构。

    4K60

    SAP ETL开发规范「建议收藏」

    总是尝试在表格比较中使用“排序后的输入”选项,注意确保输入在“下推式SQL”中排序。 3.6 Try/Catch 通常应该在作业开始时作业结束时使用try-catch对象。...运行尚未优化的大型查询可能会对数据库服务器造成严重影响。...应该在优化的SQL中反映查询中的任何Sort,WhereGroup By子句。 Where子句不会下推到SQL的一些常见原因包括: 在Where子句中使用自定义函数或复杂函数。...将源表路由到多个查询。如果需要在单个数据流中多次使用相同的源表,则应将源表的多个实例添加到数据流中,并将每个实例连接到相应的Query对象。...使用表格比较具有以下优点: 可以定义导致更新的列(而不是仅使用所有列) 排序后的输入选项和缓存选项可用于提高性能 它在数据流上更具可读性清晰度 在Oracle,自动正确加载选项可以作为合并命令来实现

    2.1K10

    高性能 MySQL 第四版(GPT 重译)(二)

    RAID 性能优化 存储引擎通常将它们的数据/或索引保存在单个大文件中,这意味着 RAID 通常是存储大量数据的最可行选项。RAID 可以帮助提高冗余性、存储容量、缓存速度。...如果无法使用选项,则最重要的选项这两个: innodb_buffer_pool_size innodb_log_file_size 恭喜——刚刚解决了我们见过的绝大多数真实世界配置问题...在阅读关于索引的第七章关于查询优化的第八章之后,您可能会发现重新阅读本章很有用。许多讨论的主题不能孤立考虑。...当 MySQL 使用一种称为索引合并的策略时,它可以在使用多个索引来定位所需行的单个表时稍微应对这种索引不良的表。它可以同时扫描这两个索引并合并结果。...MySQL 可以同时用同一个索引进行排序查找行。如果可能的话,最好设计的索引,使其同时这两个任务有用。

    31120

    如何加速WordPress网站

    此测试环境旨在突出显示某些插件或主题中可能出现的各种性能瓶颈:高CPU使用率,高内存使用率,慢SQL查询慢速JavaScript。...这两个Compose文件是分离的。这种解耦允许您在阅读完本指南后,在运行自己的WordPress站点而不是测试站点的服务器单独安装第二个Compose文件。...该页面现在应该在浏览器中加载不到一秒钟。 关于插件主题的注意事项 使用的慢代码示例都与特定插件相关,解决方案是停用它们。...与服务静态HTML页面相比,这对的服务器来说更加沉重。WordPress缓存插件将的页面预编译为静态下载。执行此操作的两个示例插件是WP RocketW3 Total Cache。...Linode提供了优化ApacheMySQL的指南: 调整Apache服务器 如何使用MySQLTuner优化MySQL性能 可选:配置自己的WordPress站点 您可以重复使用本指南提供的XHGUI

    4.2K30
    领券