oracle中,索引是干啥用的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中,索引是干啥用的?相关的知识,希望对你有一定的参考价值。

参考技术A   索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。
  使用索引的目的:
  1、加快查询速度
  2、减少I/O操作
  3、消除磁盘排序
  4、何时使用索引
  5、查询返回的记录数
  6、排序表<40%
  7、非排序表
<7%
  8、表的碎片较多(频繁增加、删除)

这个 makefile 规则中的大括号是干啥用的?

【中文标题】这个 makefile 规则中的大括号是干啥用的?【英文标题】:What are the braces in this makefile rule for?这个 makefile 规则中的大括号是干什么用的? 【发布时间】:2019-01-22 16:41:38 【问题描述】:

我正在为一个 Qt 创建的项目读取一个 makefile,它具有以下内容:

backend.cpprelease\.obj::
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<<
    $<  
<<

(以上代码使用 \t 作为配方,并在 makefile 中编写)

规则和配方都让我感到困惑。

我将从规则中的backend 开始。显然release 也有同样的困惑。我假设这是对名为backend 的特定子目录的引用。我猜..\backend\release\bar.obj 会被视为合法目标?但是 ma​​ke 的哪一部分说这是合法的语法,这里到底发生了什么?

FWIW:这是在注释为:##### implicit rules 的部分中。 版本:GNU Make 4.2.1 Built for x86_64-unknown-cygwin

奖励积分:

解释@&lt;&lt;&lt;&lt; 在配方中的使用...(是的,我缺乏 bash shell 技巧...)。这是用$&lt; 引用第一个先决条件并静默重定向它吗?为什么不是$$&lt;

谢谢。

【问题讨论】:

您在他们的 GitHub 存储库中有指向该文件的链接吗? @BenjaminW。感谢您的评论,我编辑了问题以使其更清楚 - 此生成文件来自本地 Qt 创建的项目,而不是 Qt github 项目。 这些花括号对 GNU make 没有任何意义,因此就它而言,它们只是被视为任何其他字符。此外,@&lt;&lt; 的东西不是合法的 GNU make(除非他们可能在 makefile 的某处设置了.ONESHELL)。我怀疑这里生成的makefile是错误的。 另外,你能检查一下你上面例子的内容并修正最后一行的格式吗?它应该只是&lt;&lt; 还是其他什么? 找到了正确的代码格式。 【参考方案1】:

这是一个 NMAKE 批处理模式规则

https://docs.microsoft.com/en-us/cpp/build/batch-mode-rules?view=vs-2017

等效的 GNU Make 规则类似于

backend/%.obj: release/%.cpp:

不同之处在于,顾名思义,这些规则将只为所有有效目标调用一次它们的配方,并期望规则使用$&lt; 宏在一次传递中创建所有目标。

&lt;&lt; 语法是 NMAKE 的内联文件功能

https://docs.microsoft.com/en-us/cpp/build/inline-files-in-a-makefile?view=vs-2017

这会扩展并捕获尖括号之间的所有内容并将其保存到一个文件中,在这种情况下是一个临时文件,因为括号后没有指定文件名。然后通过@ 选项将该文件作为配方第一行的响应文件传递给编译器。

【讨论】:

太棒了!谢谢,我完全忘记了 NMAKE!

以上是关于oracle中,索引是干啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

oracle forms builder里SET_BLOCK_PROPERY是干啥用的?怎么用

数据库都有哪些种类?分别是干啥用的?

数据库中的DROP,GRANT REVORK分别是干啥用的

mysql是干啥用的?

OverrideAuthenticationAttribute 是干啥用的?

Xcode Storyboard Document 部分是干啥用的?