C#中的数据分区

A.P*_*P.S 5 .net c# mysql sql

我想将大量数据分发到不同的C#应用​​程序.例如,我的表包含数百万条记录.我想指定App1处理前3百万条记录,另外C#应用程序App2处理300万条,依此类推.表行将根据要求删除并添加.现在我想写一个SQL查询,它将处理前300万条记录.现在,如果从app1中删除了5条记录,则app1必须从app3获取接下来的5条记录,从app3获取app2.因此,每个应用程序中的数据始终保持不变.

我在SQL查询中使用了限制,但是我没有得到所需的输出.如何为此编写SQL查询以及如何设计C#应用程序.

Sna*_*Jag 0

我将从对应用程序的详细信息以及获取、选择、删除等过程的更多了解中受益。但是,尝试获得可行的答案。

简而言之,使用分区表和分布式视图。每个应用程序都通过公共分区视图“键控”到这些表,如果任何应用程序必须对另一个表(或“键”)进行操作,它可以使用相同的视图并对其他表进行操作。

更详细...

如果您有 SQL Server 的 Enterprise 或 Developer 版本,或者任何其他提供分布式视图的版本,那么您可以创建三个或更多带有分区列的表(“App1”、“App2”、“App3”),就像 Mark Byers 那样已经说过,这将平均分配处理数据的能力。

现在为“从表 1 中选择字段 1、字段 2、字段 3 等从表 2 中选择字段 1、字段 2、字段 3 等从表 2 中选择字段 1、字段 2、字段 3 等从表 3 中选择字段 1、字段 2、字段 3 等”创建一个视图(WITH SCHEMABINDING)

在唯一代表您的数据的一/两个字段上创建唯一的聚集键。完成此操作后,您现在可以从视图中选择/删除/更新,其中partitioncolumn =“app1”和“id=?”。该例程使得视图上的活动允许进行操作查询(插入/更新/删除),并且仅作用于分区数据的表。

因此,App1 发送一个“App1”WHERE 过滤器,并且数据库引擎仅作用于 table1,即使视图具有。