当决定在表中创建哪些索引时要对应用中查询进行仔细分析。
具体包括,检查查询子句中包括了哪些列;了解数据的分布情况来决定索引的用途;对执行的查询按照重要性和频繁性进行排序。你须注意的是,在创建索引时,不要为了考虑单个的查询而忽略了该表上的其他查询(顾此失彼)。你应该提出一组索引服务于你的表中
最有代表性的查询。
引用
建议:
SQL Profiler是一个用来帮助你来识别频繁执行和关键的查询的有用的工具。我发现,当你着手处理一个新客户的网站或识别需要调优的应用中有问题查询时,SQL Profiler简直是一个无价之宝。SQL Profiler允许你跟踪SQL Server中正在执行的进程和查询,也可以捕捉 runtime, reads and writes, execution plans,和其他进程信息。这些信息能帮助你识别哪些查询的性能低下,哪些查询经常执行,哪些索引经常被查询用到等等。
你能手工来分析这些信息,也可以保存下来,用索引调优向导(Index Tuning Wizard)进行分析。
因为不可能为所有的列都创建索引,所以,
索引首先要满足你的应用中最关键或者是被很多用户频繁执行的查询。如果你有一个查询每月只运行一次,值得创建一个索引来支持该查询吗?并且在该月的其他时间还需要进行维护它。该月中,系统在此索引上花费的时间毫无疑问超过了满足该查询的表扫描花费时间。
如果,因为处理的需要,你必须在该查询运行时需要索引,可以考虑在运行查询时创建一个索引,而在运行结束之后删除该索引。只要创建索引的时间加上有索引的查询执行时间不超过无索引查询执行的时间,那么这也是一种可行的方法。
自我总结:
钢要用在刀刃上,应在关键和频繁使用的查询上创建索引。
分享到:
相关推荐
selection.index的目标是轻松构建选择索引,并根据这些索引选择植物性状以全面改善植物。 安装 您可以使用以下命令从安装发布的selection.index版本: install.packages( " selection.index " ) 例子 这是一个基本...
6. **`getRangeAt(index)`**: 返回选区中指定索引的`Range`对象,如果`rangeCount`为1,可以忽略索引。 7. **`removeAllRanges()`**: 清除所有选区。 8. **`addRange(range)`**: 添加或设置新的`Range`到选区。 9. *...
- `getRangeAt(index)`:返回与选择关联的指定索引的`Range`对象。 - `removeAllRanges()`: 清除所有选择的范围。 - `selectAllChildren(node)`:选择指定节点的所有子节点。 - `toString()`: 返回被选文本的...
它应该有以下标题: callbackfun(obj,hit,faceIndex) 其中 face Index 包含被单击的人脸的索引,它可以包含一个或两个索引,具体取决于选择类型。 selection String 定义了三个不同的选择标准,当 callback
1. **初始化**:首先,我们需要一个函数来执行选择排序,例如可以定义一个名为`selection_sort`的函数,接受一个整型数组和它的长度作为参数。 2. **外层循环**:外层循环控制排序的轮数,从第一个元素开始到倒数第...
标题中的"PyPI 官网下载 | rpi_featureSelection_python_tools-2.0.13.tar.gz"指的是一款名为`rpi_featureSelection_python_tools`的Python库,版本为2.0.13,该库是以`.tar.gz`格式在Python的包索引平台PyPI上发布...
- 使用 `min_index` 记录最小元素的索引。如果在内层循环中找到更小的元素,就更新 `min_index` 的值。 - 在内层循环结束后,将找到的最小元素与当前位置 `i` 的元素进行交换。 - 这个过程一直重复,直到整个列表...
- getRangeAt(index): 获取选区中的某个特定范围(Range对象),索引从0开始; - addRange(range): 将指定的范围添加到当前选区; - removeRange(range): 将指定的范围从当前选区中移除; - removeAllRanges(): 清除...
def selection_sort(arr): for i in range(len(arr)): min_index = i for j in range(i+1, len(arr)): if arr[j] [min_index]: min_index = j # 交换最小值到已排序部分的末尾 arr[i], arr[min_index] = arr...
以上代码首先初始化最小元素的索引为0,然后遍历数组,如果发现比当前最小元素更小的元素,就更新最小索引。最后,将最小元素与当前位置的元素交换。这个过程重复n次,直到整个数组排序完成。 在提供的压缩包文件中...
`ListSelectionEvent`包含三个构造函数,分别用于单个选择、范围选择和清除所有选择。在`ListSelectionListener.valueChanged`方法中,你可以通过`ListSelectionEvent`获取当前选中的起始和结束索引,从而知道哪些...
7. **访问路径选择(Access Path Selection)**:Oracle会根据表的大小、索引的有效性、统计信息等因素选择最佳的访问路径。 为了优化执行计划,数据库管理员通常需要分析和调整索引、分区、统计信息等。Oracle的...
Selection Model管理用户在View中的选择,保存用户选择的Item的Index,并同步到其他共享相同Selection Model的View。这样,多视图间可以保持一致的选中状态,提升用户体验。 Qt 4引入的新item view类利用Model/...
6. 数据访问和索引选择(Data Access and Index Selection) - 优化器在选择查询执行路径时,会考虑数据访问方法和索引选择,以提升查询效率。 7. 连接优化器(Join Optimizer) - 文档提及了连接优化器,包括...
#### 四、数据访问与索引选择(Data Access and Index Selection) ##### 1. 数据访问方式 MySQL支持多种数据访问方式,如全表扫描、范围扫描、引用访问等。不同的访问方式对查询性能的影响各异。 ##### 2. 索引选择...
*自适应选择:Adaptive Replica Selection 可以根据实际情况选择合适的副本,提供了强大的副本选择能力。 *高性能:Adaptive Replica Selection 采用高性能的选择算法,能够快速处理大量数据。 Kuery + ...
- `remove(int index)`:移除指定索引位置的元素。 3. **将 JList 添加到 JScrollPane 中:** 为了使 JList 在内容超出容器大小时能够自动滚动,通常会将其放入 `JScrollPane` 容器中。 ```java JList...
选择排序(Selection Sort)是一种简单直观的排序算法。与其他复杂度较高的排序算法相比,选择排序的实现较为简单且易于理解,非常适合初学者学习和掌握。 #### 二、选择排序的工作原理 选择排序的核心思想在于...
在给定的项目"game-of-selection-of-random-side"中,我们可以推断这可能是一款基于随机选择的游戏,可能是类似猜硬币正反面、选择队伍等场景。该项目使用了GDScript,这是Godot游戏引擎内置的一种脚本语言,它简洁...
- 学习者将了解投影(Projection)、选择(Selection)、并集(Union)、差集(Difference)等基本操作。 3. **关系数据库模型(Relational Database Model)** - "3 relational database model.pdf"介绍了E-R...