У меня есть переменная, которая использует другую переменную для получения ее значения. Я установил для свойства EvaluateAsExpression значение True. Теперь, когда я использую эту переменную в Задача сценария, для оценки этого выражения требуется 2-3 минуты. Но если я жестко кодирую значение переменной вместо того, чтобы читать его из другой переменной, то оно заканчивается менее чем за секунду. Кто-нибудь дайте мне знать, если я что-то упустил? Я использую BIDS/SSIS 2008.
Variable1: D:\app\srikar.mogaliraju
Variable2: @[User::Variable1]+"\\Product"
Код задачи сценария:
public void Main()
{
String SourceFolderPath, DestinationFolderpath;
SourceFolderPath = Dts.Variables["User::Variable2"].Value.ToString();
//Random Code
Dts.TaskResult = (int)ScriptResults.Success;
}
@Arthur Добавил выражение в мой вопрос.
@Arthur Когда я использую эту оценочную переменную в других задачах, кроме задачи «Сценарий», она работает без проблем. Я столкнулся с проблемой только с задачей сценария.
Это медлительность на стороне парсера. Похоже, ему требуется больше времени, чтобы попасть внутрь задачи сценария, чем любому другому
@Arthur Есть предложения выполнить Trail and Error, чтобы сделать это быстрее?
Установите его за пределами Задача сценария @Srikar
@Srikarmogaliraju Почему вы используете задачу сценария для установки значения другой переменной пакета. Это можно сделать в свойстве Package Variables Expressions. Это и легче, и проще.
@JWeezy Я не устанавливаю это в задаче «Сценарий». Я просто использую переменную, значение которой задается в свойстве Package Variables Expressions.
@Srikarmogaliraju Возможно, будет полезнее, если вы опубликуете код задачи скрипта, чтобы мы могли посмотреть на него и попытаться диагностировать проблему.
@JWeezy Отредактировал мой вопрос, добавив код задачи сценария и построитель выражений переменной 2. Проблема заключается в чтении значения переменной в задаче Script.
Вы уверены, что задержка находится в строке, где вычисляется выражение, а не где-либо еще? Простая конкатенация строк не должна создавать проблем. Возможно, это остальная часть кода в сценарии. У вас есть параллельные казни?
@Srikarmogaliraju Вы пытаетесь выполнить оценку выражения в задаче скрипта? Если да, то это неправильно. Вы выполняете вычисление выражения переменной в окне Variables. Затем вы выбираете эти переменные в пользовательском интерфейсе задачи «Сценарий» либо для чтения, либо для чтения и записи.
@EzLo Я уверен, что это из-за вычисляемого выражения. Я сохранил точку останова, чтобы подтвердить то же самое. если я удалю построитель выражений и жестко закодирую значение переменной, проблем вообще не будет.
@JWeezy Я выполняю оценку выражения в окне переменных. Отредактировал мой вопрос со скриншотом для того же.
У меня нет решения для этого. Поэтому публикую ответ с решением, которое я реализовал, чтобы обойти эту проблему.
Что это за выражение? Но я бы сказал, что машина, на которой он работает, недостаточно мощная.