Posh:加入DataTables 15000条记录

时间:2014-06-25 11:11:06

标签: powershell datatable powershell-v3.0

我在PowerShell中有2个DataTable。

$ DT1,$ DT2

表格都包含相同的列。 (产品) - (行) - (股票)

现在我想在每个列的新DataTable中显示它们。

$ DT3:

DT1.Product - DT1.Row - DT1.Stock - DT2.Product - DT2.Row - DT2-Stock

我可以简单地使用foreach-object循环来执行此操作,但是这些表包含每个15000行,并且它永远都是如此。首先,如果不创建新行,我需要检查产品和行是否存在

组合这两个表格的速度是否更快?

$DT1 | % {
    $Row = $DT3.NewRow() 
    $Row.DT1Product = $_.Product
    $Row.DT1Row = $_.Row
    $Row.DT1Stock = $_.Stock
    $DT3.Rows.Add($Row)
}
$DT2 | % {
    $dbSearch = ""
    $dbSearch = $DT3.Select("DT1Row = '$_.Row' and DT1Product = '$_.Product'")
    if ($dbSearch) {
        $dbSearch[0].DT2Product = $_.Product
        $dbSearch[0].DT2Row = $_.Row
        $dbSearch[0].DT2Stock = $_.Stock
    }
    Else {
        $Row = $DT3.NewRow() 
        $Row.DT2Product = $_.Product
        $Row.DT2Row = $_.Row
        $Row.DT2Stock = $_.Stock
        $DT3.Rows.Add($Row)
    }
}

1 个答案:

答案 0 :(得分:0)

我发现大型数据库在小的可管理块中进行数据更改是实现最可靠结果的好方法。根据经验,我可以使用一些方法:

1)导出表的唯一字段作为输入文件的参考点,然后通过find | select方法管理更改,一次说出2000条记录;

2)将整个表导出到文件中;管理对导出文件的更改;将更新导入数据库。

我想我想在这里做的一点是,不要局限于你用来实现结果的技术。将技术与部署过程相结合,您可以选择更有效的方式来实现预期的结果。只是一个想法。