常规设计设置
在运行 Database Designer 之前,您必须提供待创建设计的具体信息。
设计名称
使用 Database Designer 创建的所有设计均必须具有符合标识符中所述约定的唯一名称,且长度不超过 32 个字符(如果您在管理工具或管理控制台中使用 Database Designer,则不超过 16 个字符)。
设计名称将合并到 Database Designer 生成的文件(例如其部署脚本)的名称中。这可以帮助您区分与不同设计关联的文件。
设计类型
Database Designer 可以创建两种不同的设计类型:全面设计或增量设计。
全面设计
全面设计将为指定架构中的所有表创建一个初始设计或替换设计。当您创建新的数据库时创建全面设计。
要帮助 Database Designer 创建一个有效的设计,请将具有代表性的数据加载到表中,然后再开始设计流程。当您将数据加载到表时,Vertica 会创建一个未经过优化的 超投影,这样 Database Designer 便拥有了一些有待优化的投影。如果某个表不包含任何数据,Database Designer 将无法优化该表。
或者,为 Database Designer 提供您计划使用的具有代表性的查询,以便 Database Designer 可以优化这些查询的设计。如果您未提供任何查询,Database Designer 会创建一个超投影常规优化方案,该方案可最大限度减少存储并且不包含任何查询特定的投影。
在全面设计期间,Database Designer 会创建一些用于执行以下操作的部署脚本:
-
创建投影以优化查询性能。
-
当 Database Designer 更改其决定保留的现有投影的编码时,创建替换伙伴实例投影。
增量设计
创建和部署全面的数据库设计之后,数据库可能会随着时间以各种方式发生更改。您可以考虑定期使用 Database Designer 创建增量设计,以应对这些更改。涉及增量设计的更改可能会包括:
-
重要数据的添加或更新
-
您定期运行的新查询或修改后的查询
-
一个或多个查询的性能问题
-
架构更改
优化目标
Database Designer 可以为以下三个目标之一优化设计:
- 加载:针对负载进行优化的设计可以最大限度减小数据库大小,但这可能会降低查询性能。
- 查询:针对查询性能进行了优化的设计。这些设计通常倾向于快速执行查询而不是负载优化,因此会导致更大的存储空间。
- 余额:在数据库大小和查询性能之间实现平衡的设计。
一个完全优化的查询具有的优化率为 0.99。优化率是在 Database Designer 生成的设计中实现的查询好处与在理想计划中实现的查询好处的比率。优化比例在 designer.log
的 OptRatio 参数中设置。
设计表
Database Designer 需要一个或多个包含适量示例数据(大约 10 GB)的表,以创建最佳设计。具有大量数据的设计表将对 Database Designer 性能产生不利影响。数据太少的设计表则会导致 Database Designer 无法创建优化设计。如果设计表没有数据,则 Database Designer 将忽略它。
注意
如果在表添加到设计之后将其删除,Database Designer 将无法构建或部署设计。设计查询
针对查询性能优化的数据库设计需要一组具有代表性的查询,或设计查询。对于增量设计,设计查询为必需项,全面设计则为可选项。您将在作为输入提供给 Database Designer 的 SQL 文件中列出设计查询。当您向设计中添加查询以及当查询再次构建设计时,Database Designer 会检查查询的有效性。如果查询无效,Database Designer 会将其忽略。
如果您使用管理控制台创建数据库设计,则可从输入文件或系统表 QUERY_REQUESTS 中提交查询。有关详细信息,请参阅手动创建设计。
设计查询的最大数量取决于设计类型:对于全面设计,最大查询次数 ≤200 次;对于增量设计,最大查询次数 ≤100 次。或者,您可以为设计查询分配权重,表示其相对重要性。Database Designer 使用这些权重在设计中确定查询的优先级。
分段投影和未分段的投影
创建全面设计时,Database Designer 会基于数据统计信息和查询来创建投影。它还会查看提交的设计表,进而决定是应该对投影进行分段(在群集节点之间分布),还是不分段(在所有群集节点上复制)。
默认情况下,Database Designer 仅建议分段投影。您可以启用 Database Designer 以建议未分段投影。在这种情况下,Database Designer 建议在部署到多节点群集时对大型表使用分段超投影,而对较小表建议使用未分段超投影。
Database Designer 使用以下算法来确定是否建议未分段投影。假设最大行计数等于包含最大行数的设计表中的行数,如果满足以下任何条件,则 Database Designer 建议使用未分段投影:
-
最大行计数
< 1,000,000,并且表中的行数 ≥ 最大行计数的 10% -
最大行计数 ≥ 10,000,000,并且表中的行数 ≥ 最大行计数的 1%
-
表中的行数 ≤ 100,000
Database Designer 不会在以下对象上对投影进行分段:
-
单节点群集
-
LONG VARCHAR 和 LONG VARBINARY 列
有关详细信息,请参阅使用投影的高可用性。
统计信息分析
默认情况下,Database Designer 在设计表添加到设计时分析其统计信息。准确的统计信息可帮助 Database Designer 优化压缩和查询性能。
分析统计信息需要花费一些时间和资源。如果您确定设计表统计信息为最新信息,则可指定跳过此步骤,避免因此而产生的开销。
有关详细信息,请参阅收集统计信息。