Я работаю над сценарием PowerShell, который имеет дело с очень большим набором данных. Я обнаружил, что он работает очень хорошо, пока не будет использована память. Из-за того, насколько велик набор данных и что делает скрипт, он имеет два массива, которые становятся очень большими. Исходный массив - это примерно половина концерта, а конечный объект - это шесть или семь концертов en-memory. Моя идея заключается в том, что она должна работать лучше, если я могу освободить строки, как это сделано, и запустить скрипт с шагом.Импорт XML-объектов в пакеты
Я могу разбить импортированный XML с помощью функции, которую я нашел и настроил, но я не могу изменить данные, фактически содержащиеся в массиве.
Это сценарий, я использую, чтобы разделить массив в партии в настоящее время: https://gallery.technet.microsoft.com/scriptcenter/Split-an-array-into-parts-4357dcc1
И это код, используемый для импорта и разделить результаты.
# Import object which should have been prepared beforehand by the query
# script. (QueryForCombos.ps1)
$SaveObj = "\\server\share$\me\Global\Scripts\Resultant Sets\LatestQuery.xml"
$result_table_import = Import-Clixml $SaveObj
if ($result_tables.count > 100000) {
$result_tables = Split-Array -inArray $result_table_import -size 30000;
} else {
$result_tables = Split-Array -inArray $result_table_import -parts 6
}
И тогда, конечно, есть сценарий обработки, который фактически использует данные и преобразует их по желанию.
Если вы можете разделить XML на куски, которые могут обрабатываться индивидуально, вы также сможете обрабатывать XML-данные с помощью конвейера. Пожалуйста, сделайте шаг назад и опишите фактическую проблему, которую вы пытаетесь решить (т. Е. Какая структура имеет ваши данные XML и что вы хотите сделать с ней в конце) вместо того, что вы воспринимаете как решение. Кроме того, фрагмент кода, который вы опубликовали, не может работать так, как вы ожидаете. '$ result_tables' еще не определен, когда вы пытаетесь проверить его свойство' Count', а '>' не является оператором сравнения в PowerShell. –
Должно было положить ... между таблицей результатов и result_table_import. Процессы импортируют XML-файл данных, который был экспортирован из предыдущего скрипта. Первый скрипт извлекает данные с SQL-сервера, а сам сценарий обрабатывает строки и разбивает их на основе возможных комбо, найденных из одного из столбцов. К сожалению, я должен быть довольно неоднозначным, так как это защита данных от компаний ... (Даже если нет фактических данных, они довольно жесткие) – Ethan