问题标签 [table-partitioning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 如何在不删除表、分区方案和分区函数的情况下,在 SQL Server 中的分区表的下端和末尾添加空文件组?
我有一张桌子叫dbo.Audit
. 我最初有像 2030 年的文件组。fgAudit2012
我的分区函数的名称是,分区方案的名称是. 每个文件组(每年)有 12 个分区(每月),如下面的屏幕截图所示。用于分区的列的名称是数据类型INT并将保存datekey值。fgAudit2013
fgAudit2030
2012
pfMonthly
psMonthly
ActionDateID
我决定在表中再添加三个文件组。一个用于 2011 年,一个空文件组用于早于 2011 年的所有年份,一个用于所有晚于 2030 年的年份。
我做的第一件事是创建一个名为的文件组fgAudit2011
并向其添加文件fileAudit2011
。我通过使用在分区的前面添加了这个文件组
和
我在十二个月内重复了十二次。结果如下面的屏幕截图所示。
现在最底部的分区指向错误的文件组 ftAudit2012。如何在两端添加两个空分区?文件组 fgAuditbefore2011 应该在前面,fgAuditAfter2030 应该在最后。如何在不删除和重新创建表或删除和重新创建分区函数和分区方案的情况下做到这一点?
indexing - 显示已分区聚集索引上缺少非聚集索引的执行计划
我们有一个查询,其中表在 column 上分区Adate
。
行数:56595943,分区方案 - 每年,分区数 - 300
聚集索引列:empid, Adate
询问 :
实际执行计划返回一个聚集索引查找操作,占聚集索引键总查询成本的 93%。
但是为什么优化器会以 92% 的成本推荐缺失索引呢?
缺少索引详细信息:提高查询成本:92%
在 dbo.emp([empid], [Adate]) 上创建非聚集索引 IDX_NC
缺失索引的改进度量为 14755268,根据 Microsoft,改进度量基线为 1,000,000
为什么会这样?您是否建议在已聚集索引列上使用非聚集索引?
postgresql - 记录“新”尚未分配
我正在尝试实现表分区,我在 PostgreSQL 中有以下代码(来自https://www.postgresql.org/docs/9.6/ddl-partitioning.html)
触发功能:
在上述触发器之后或之前都尝试过。
仅供参考,相同的代码适用于另一张桌子。
有什么建议么?
oracle - YYYYMM年月字段Oracle 12c的范围与列表分区
我有一个表格,其中包含按列年份月份区分的每月数据(YYYYMM,例如 201911)。
我们一直计划按月对表进行分区,但是对于这种情况,我们无法在范围分区和列表分区之间做出决定。
Oracle 明确建议对具有日期/时间戳的列使用范围分区。如果列是数字,是否会对性能产生不利影响?
此表上的大多数查询也有year_month = ??
过滤器!
sql-server - 在外键列上创建对齐索引
我有一个沿PeriodDate
列分区的事实表。
我想在列上创建一个分区对齐索引OrderID
,正如我从 BOL 中了解到的那样,我需要包含分区键 ( PeriodDate
) 以使索引对齐。
像这样:
我的问题是:我应该以什么顺序将两列放在上面的索引中?
ON MyFactTable (OrderID, PeriodDate);
或者
ON MyFactTable (PeriodDate, OrderID);
正如我在 BOL 上所读到的,复合索引中的顺序也很重要,我的查询通常用于OrderID
查找 Dim 表数据。
一OrderID, PeriodDate
阶似乎是合乎逻辑的选择,但由于我不熟悉分区,我不知道当表有数百万行时它会如何“喜欢它”。
最佳实践在这里规定了什么?
sql-server - 截断分区后删除空分区对象
我有一个按日期列分区的表,每个分区存储一个月的数据。
此外,每个分区与一个文件组相关联,每个文件组只有一个 db 文件 (NDF)。
我的设置非常简单:
我需要定期截断随机月份(有时甚至从中间截断,而不触及其他月份)。
我没有进行复杂的切换,而是从 BOL 中发现,TRUNCATE TABLE 在我的 SQL Server 2017 中有 WITH 选项,所以我只能说:
这将从与 FG_2019_08 和 FG_2019_10 关联的文件中删除分区中的所有行。
这很好用,现在我有一个空文件,但 SQL Server 不允许删除:它说它仍在使用中。我的理解是,我仍然需要调整分区函数和分区架构,以删除空的 NDF 文件。
我检查了 BOL,但我无法理解如何更改(合并?)边界值,以反映上述更改。他们应该变成这样,对吧?
如果我需要改变的话,谁能告诉我如何改变这两个对象?
python - 如何在 google Bigquery 中使用 loadjob 时创建日期分区表?
有人能够解释如何在使用 JobConfig 在 google Bigquery 中使用 loadjob 时创建日期分区表。
我无法理解文档,如果有人可以举例说明,那将非常有帮助。
编辑:所以我想感谢@irvifa,我想出了这个对象,但我仍然无法创建一个 TimePartitioned 表,这是我试图使用的代码。
apache-spark - 如何使用 PySpark 在 Delta 文件的分区上动态执行插入覆盖?
我是 pyspark 的新手,正在寻找动态覆盖增量分区。从在线可用的其他资源中,我可以看到 spark 通过将以下 conf 设置为“动态”来支持动态分区
spark.conf.set("spark.sql.sources.partitionOverwriteMode", "动态")
但是,当我尝试用数据框覆盖 partitioned_table 时,pyspark(databricks)中的以下代码行会覆盖整个表而不是增量文件上的单个分区。
data.write.insertInto("partitioned_table", overwrite = True)
我确实遇到了使用 Hive 外部表的选项,但在我的情况下它并不直接,因为 partitioned_table 是基于 Delta 文件的。
请让我知道我在这里缺少什么。提前致谢!
postgresql - SERIAL 与 NULL 一起使用,始终作为 IDENTITY 生成而不是
Postgres 12:
我越来越:
如果我INT generated always as identity
用它代替SERIAL
它。这很奇怪,因为在另一个表中生成的标识总是与 null 一起使用。使用as value 也不起作用。default
GAAI应该是替代SERIAL的SQL标准方式,即使它是建议的方式。我在这里想念什么?
谢谢。