Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这是在应用程序级别对数据进行分区的正确方法吗?_C#_Sql_Sql Server_Partitioning - Fatal编程技术网

C# 这是在应用程序级别对数据进行分区的正确方法吗?

C# 这是在应用程序级别对数据进行分区的正确方法吗?,c#,sql,sql-server,partitioning,C#,Sql,Sql Server,Partitioning,目前,我正在开发一个在应用程序级别进行分区的遗留系统。例如,一个有一百万行的行项目表被分成两个表,这样每个表就有50000000行。我没有数据分区的经验,所以我不确定这是否是正确的方法。关于这一点,我有两个问题:如果这是一种可以接受的方法,它将如何处理外键关系?如果这不是一种可以接受的方法,那么如何在应用程序级别使用分区逻辑呢 if (LineItemID < 5000000) { GetLineItemFromTableA(); } else { GetLineItemF

目前,我正在开发一个在应用程序级别进行分区的遗留系统。例如,一个有一百万行的行项目表被分成两个表,这样每个表就有50000000行。我没有数据分区的经验,所以我不确定这是否是正确的方法。关于这一点,我有两个问题:如果这是一种可以接受的方法,它将如何处理外键关系?如果这不是一种可以接受的方法,那么如何在应用程序级别使用分区逻辑呢

if (LineItemID < 5000000) {
    GetLineItemFromTableA();
} else {
    GetLineItemFromTableB();
}

更新-通过一个简单的存储过程从TableName中选择column1、2、3来检索数据。数据用于报表和web应用程序。

我们可能需要知道您如何检索数据,以及检索数据后要做什么。为您添加了更多信息…谢谢,我想知道系统是否在最后检索所有1m记录?还是只需要处理500K记录?使用ADO.NET从SP检索数据?为什么需要在应用层处理外键?IMO,如果您检索报告的数据没有排序,在应用层进行过滤,我建议您在SP中进行分页。我们可能需要知道您如何检索数据,以及检索数据后要做什么。为您添加了更多信息…谢谢,我想知道系统是否在最后检索所有1m记录?还是只需要处理500K记录?使用ADO.NET从SP检索数据?为什么需要在应用层处理外键?依我看,如果您在应用程序层中检索报告的数据没有排序、过滤,我建议您在SP中进行分页