问题标签 [data-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.

0 投票
1 回答
1224 浏览

algorithm - 平衡分区 vs 背包 1/0 复杂度

平衡分区: . 您有一组 n 个整数,每个整数都在 0 ... K 范围内。将这些整数分成两个子集,使 |S1 - S2| 最小化,其中 S1 和 S2 表示两个子集中每个子集中元素的总和。背包问题:给定一组项目,每个项目都有一个重量和一个值,确定要包含在集合中的每个项目的数量,使得总重量小于或等于给定的限制,并且总值与可能的。不能两次使用同一个对象。

似乎平衡分区问题的解决方案是简单地应用背包算法,对于背包的大小 S/2,其中 S 是所有输入数字的总和,权重等于每个对象的值。不过,这里说背包问题是 O(nC),而平衡分区问题是 O(n^2 k)。我错过了什么?

0 投票
1 回答
46 浏览

sql - 尝试使用分区而不是子查询

我有两张表,一张在我当前的系统中有当前的电子邮件,一张是我创建并从全球通讯簿中导出的所有电子邮件地址,以及一个 BIT 值,它是主电子邮件地址和用户 ID 值. 我使用子查询编写了一个查询来查找应该更改哪些电子邮件地址,但我虽然应该能够在不使用子查询的情况下做到这一点,但不知道怎么做?

有谁知道不使用子查询如何或是否可以做得更好?

我有什么工作,但我想学习如何更好地编写 SQL。

我虽然应该能够使用 OVER (Partition BY Member_ID) 和 MAX(CAST( [primary] AS int)) 来做到这一点,但花了几个小时试图弄清楚并没有成功。

...

...

0 投票
1 回答
2945 浏览

sql-server - 租户 ID 上每个表的 SQL Server 分区 - 已用磁盘空间

我们目前正在开发一个多租户 Web 应用程序。此应用程序将所有数据存储在 1 个单一数据库中。

租户的数据行始终带有租户 ID。

目前我们正在考虑创建表分区,以租户 ID 作为分区键。这是有道理的,因为 99.9% 的所有查询将包含租户 ID 作为 where 子句标准。如果我理解正确,SQL Server 查询通过消除不包含分区键的表分区(在我的情况下是租户 ID)来优化所有此类查询。

对此策略的任何评论(严重的缺点,使用或不使用文件组等,每个表允许的最大分区......)将不胜感激。

但我的主要问题是:我们要计算每个租户的磁盘使用量。SQL Server 支持报告每个分区的磁盘使用情况(标准报告)。有人知道 T-SQL 可以让我获取给定租户 ID 的所有表分区的磁盘使用情况吗?

0 投票
1 回答
1267 浏览

sql-server - 在 SQL Server 2008 中使用索引表的分区切换进行并行批量加载

这是我之前的一个问题的后续,在明确决定将分区切换作为快速将数据放入需要保持对读者可用的大量索引的事实类型表中的最佳方式之后。

虽然这似乎是最好的方法,但它还不足以真正满足允许多个(< 5)用户同时批量插入、索引新数据并出现在索引视图中的要求(不是必须是真正的索引视图,只是选择依赖于索引的视图)。

分区的想法是每个分区和以分区为根的索引子树可以并行锁定为只读,复制到工作表中,插入/更新新数据并重建索引,然后切换回主表所以读者不受影响。

问题是单个工作台。每个并行批量插入都需要自己的副本,具有与主表相同的约束以允许切换。

到目前为止,我已经遇到了几堵墙,试图绕过这个瓶颈:

  1. 我尝试使用相同的分区函数对工作表进行分区。这不起作用,因为您不能在分区基础上禁用索引以插入其中,同时在另一个上重建索引。
  2. 创建一个临时表作为工作表。这不起作用,因为虽然您可以使用相同的索引名称,但您不能轻松地动态创建约束并且无论如何都不能切换它。
  3. 有一组固定的命名工作表吗?如何选择一个并在别名下使用它,以便我只有一个存储的过程?
  4. 动态SQL?我已经非常努力地避免走那条路。这很复杂。

挑战很大,但在我接受瓶颈之前有人有什么想法吗?Sql 2012 会有帮助吗?适当的数据仓库如何应对这个问题?

0 投票
1 回答
2289 浏览

c# - 使用多个 http 请求集检索部分内容以通过并行任务获取数据

我试图在这篇文章中尽可能彻底,因为这对我来说非常重要,

虽然这个问题很简单,只有阅读这个问题的标题,你才能明白......

问题是:

提供健康的带宽(30mb Vdsl)...

httpWebRequest如何为单个数据/文件获取多个?,

因此,每个请求将仅下载一部分数据, 然后当所有实例完成后,所有部分都将重新合并为一个部分。

代码:

...到目前为止我所做的工作是相同的想法,只有每个任务 =HttpWebRequest = 不同的文件,

所以加速是纯粹的任务并行性,而不是使用多个任务/线程加速一次下载

就像我的问题一样。

见下面的代码

下一部分只是对该主题的更详细的解释和背景……如果您不介意阅读的话。

虽然我仍然在一个与这个(有问题的)不同的类似项目中,

它(参见下面的代码..)试图为每个单独的任务(不同的下载/文件)获取尽可能多的不同数据源。...因此,在每个(任务)不必等待前一个完成之前,它就有机会被执行,从而获得了加速。

我在这个当前主题的问题中想要做的(在下面的代码中准备好所有东西)实际上是 针对相同数据的相同 url,所以这次获得的加速是针对单任务当前下载。

实现与下面的代码相同的想法,只是这次让使用多个实例来SmartWebClient定位相同的 url 。

然后(目前只是理论)它将请求数据的部分内容,每个实例都有多个请求。

最后一个问题是我需要“让谜题回归平静”......我需要了解的另一个问题......

正如您在这段代码中看到的那样,我还没有开始工作的只是我发现使用起来非常容易的数据解析/处理,htmlAgilityPack所以没问题。

当前代码

主要条目:

这使我可以利用良好的带宽,只有我离解决方案还很远,我会真正了解从哪里开始的任何线索。

0 投票
0 回答
227 浏览

graph - Scotch/PT-Scotch 图顶点重新排序以最小化邻接矩阵带宽

尽管Scotch文档非常清楚,但它缺少使用 API 的示例。即使使用 Google 来查找其他第三方文档、示例或教程也是死路一条。

我的问题如下:我想重新排序图的顶点,以减少使用 Scotch 的邻接矩阵带宽。现在 Scotch 实现了 GPS (Gibbs-Poole-Stockmeyer) 算法,这是一种可以进行此类重新排序的算法。但是文档说:

该方法主要用于分隔符,以减少外对角块的数量和范围。

我使用策略字符串“g”来选择GPS算法,尝试了不同的pass值,但没有结果。我得到的只是一个带宽大于原始矩阵的矩阵。

我的问题是:如何告诉 SCOTCH_graphOrder() 对整个图进行重新排序(以减少带宽)?

如果您至少可以推荐任何我可能找到答案的资源,我将不胜感激。

0 投票
1 回答
1026 浏览

sql-server - 分区与多维数据集的性能

鉴于这种情况,

三个国家的销售信息。

从理论上讲,以下方法之间的预期性能差异(*)是什么?

  1. 一个立方体,每个国家有一个分区。
  2. 三个立方体,每个国家一个。

(*)对于单个国家/地区查询,当然。

0 投票
1 回答
594 浏览

matlab - MATLAB - cvpartition 的“k”和“kfold”分区类型之间的区别

有人可以向我解释一下差异及其对使用分层 10 倍交叉验证程序(由“k”分区类型表示)或 10 倍交叉验证程序(如“kfold”分区表示)对数据分区的影响类型)。

我的意图是使用此分区来执行交叉验证过程,以使用 bootstrap 集成进行时间序列分析。在这种情况下,哪种分区类型更适合对我的解释变量进行分区以尽可能适合我的响应变量?

任何帮助表示赞赏。

谢谢

0 投票
1 回答
3253 浏览

mysql - MySQL 分区:性能提升对于多个分区表。为什么?

我已经实现了一个基准测试来测试 10 个不同表上的读写持久性。

我有 10 个 java 线程,每个线程只对其表执行查询:

线程 1 对 Table1 执行操作,线程 2 对 Table2 执行操作,

我比较了在非分区表 [1-10] 上并行运行这些线程的性能,与将每个 TableX 分区为 9 个相等分区时相同基准测试的性能(每个代表一周的测量,总共 9 周数据的)。

我收到了有趣且无法解释的结果:

单线程的单个操作的性能对于非分区表来说是两倍,而对于所有线程的所有操作的总时间对于分区表来说是快 5 倍。

我检查了日志,发现分区表可以并行执行更多操作,虽然单个操作更长,但不同线程的多个操作是并行的,因此完成速度更快。

我不明白为什么会这样,因为每个线程只在自己的表上执行操作???

我只对所有表和分区使用 MyISAM 引擎。

0 投票
1 回答
218 浏览

oracle11g - 重命名分区名称时的全局索引

我有一个现有的表,其中有一些索引。我将使用 dbms 重新定义对该表进行分区。我还必须每 24 小时重命名一次分区名称。重命名分区名称后,全局索引是否有问题。请回复。

是否必须有一个主键来执行间隔分区?

我正在使用 oracle 11g