Создание идентификаторов записей для временных таблиц, занимающих много времени - PullRequest
0 голосов
/ 10 февраля 2012

В моем USP я создаю временные таблицы и генерирую для них идентификаторы для последующего использования. Требование моего проекта заключается в том, что мне нужно создать эти идентификаторы. Мой sql, где я делаю временную таблицу и генерирую уникальный идентификатор для каждой записи, выглядит примерно так:

      SELECT DISTINCT pqt.fkJID,
                  pqt.FirstDatabaseID,
                  pqt.pqtPackageID,
                  RowId = RIGHT('000000' + Ltrim(Str(Row_number() OVER (ORDER BY pqt.fkJID, pqt.fkFirstDatabaseID))), 6)
  INTO   #PQTIDs
  FROM   PackageRecord pqt WITH (nolock)
         INNER JOIN #CQTIDs cqtS
           ON cqtS.fkJID = pqt.fkJID
              AND cqtS.FirstDatabaseID = pqt.fkFirstDatabaseID

Как видите, для временной таблицы #PQTID я генерирую идентификатор, используя следующую строку:

   RowId = RIGHT('000000' + Ltrim(Str(Row_number() OVER (ORDER BY pqt.fkJID, pqt.fkFirstDatabaseID))), 6)

Теперь мой вопрос: есть ли другой способ, с помощью которого я могу генерировать уникальные идентификаторы последовательных записей для записей моей временной таблицы? Потому что я думаю, что когда я генерирую идентификаторы таким образом, это занимает много времени. Также, пожалуйста, скажите, влияет ли создание временных таблиц на производительность. Есть ли другой способ оптимизировать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...