Поделиться через


Структура JET_OPENTEMPORARYTABLE

Применимо к: Windows | Windows Server

Структура JET_OPENTEMPORARYTABLE

Структура JET_OPENTEMPORARYTABLE содержит легко расширяемую коллекцию параметров для функции JET_OPENTEMPORARYTABLE . Эта структура является временным табличным эквивалентом структуры JET_TABLECREATE .

Windows Vista: Структура JET_OPENTEMPORARYTABLE представлена в Windows Vista.

    typedef struct tagJET_OPENTEMPORARYTABLE {
      unsigned long cbStruct;
      const JET_COLUMNDEF* prgcolumndef;
      unsigned long ccolumn;
      JET_UNICODEINDEX* pidxunicode;
      JET_GRBIT grbit;
      JET_COLUMNID* prgcolumnid;
      unsigned long cbKeyMost;
      unsigned long cbVarSegMac;
      JET_TABLEID tableid;
    } JET_OPENTEMPORARYTABLE;

Элементы

cbStruct

Размер этой структуры в байтах (для будущего расширения). Для него необходимо задать значение sizeof( JET_TABLECREATE ) в байтах.

prgcolumndef

Определения столбцов для столбцов, созданных во временной таблице.

Существуют важные ограничения для параметров определения столбцов, которые используются с временной таблицей. Дополнительные сведения см. в разделе "Примечания".

В дополнение к обычным параметрам определения столбцов можно также указать ноль или несколько следующих параметров, которые актуальны только в контексте временной таблицы.

Значение

Значение

JET_bitColumnTTDescending

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

JET_bitColumnTTKey

Столбец будет ключевым столбцом для временной таблицы.

Порядок определений столбцов с этим параметром, заданным во входном массиве, определяет приоритет каждого ключевого столбца для временной таблицы. Первое определение столбца в массиве с этим набором параметров будет самым важным ключевым столбцом и т. д. Если запрашивается больше ключевых столбцов, чем может поддерживаться ядром СУБД, этот параметр игнорируется для неподдерживаемых ключевых столбцов.

ccolumn

См . раздел prgcolumndef.

pidxunicode

ИД языкового стандарта и флаги нормализации, используемые для сравнения данных любого ключевого столбца Юникода во временной таблице.

Если этот параметр отсутствует и параметр lcid отсутствует, для сравнения всех ключевых столбцов Юникода во временной таблице будет использоваться LCID по умолчанию. LCID по умолчанию — английский язык США.

Если этот параметр отсутствует, флаги нормализации по умолчанию будут использоваться для сравнения всех данных ключевых столбцов Юникода во временной таблице. Флаги нормализации по умолчанию: NORM_IGNORECASE, NORM_IGNOREKANATYPE и NORM_IGNOREWIDTH.

grbit

Группа битов, задающая ноль или несколько следующих параметров.

Значение

Значение

JET_bitTTIndexed

Этот параметр требует, чтобы временная таблица была достаточно гибкой, чтобы использовать JetSeek для поиска записей по ключу индекса.

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

JET_bitTTUnique

Запрашивает удаление записей с повторяющимися ключами индекса из окончательного набора записей во временной таблице.

До Windows Server 2003 ядро СУБД всегда предполагало, что этот параметр действует, так как все кластеризованные индексы также должны быть первичным ключом и, следовательно, должны быть уникальными. В Windows Server 2003 теперь можно создать временную таблицу, которая не удаляет дубликаты, если также указан параметр JET_bitTTForwardOnly.

Невозможно узнать, какой дубликат будет успешным, а какие дубликаты будут удалены. Однако при запросе параметра JET_bitTTErrorOnDuplicateInsertion первая запись с заданным ключом индекса, вставленная во временную таблицу, всегда будет успешной.

JET_bitTTUpdatable

Запрашивает, чтобы временная таблица была достаточно гибкой для последующего изменения записей, которые были вставлены ранее. Если эта функциональность не требуется, лучше не запрашивать ее.

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

JET_bitTTScrollable

Запрашивает, чтобы временная таблица была достаточно гибкой, чтобы разрешить сканирование записей в произвольном порядке и направлении с помощью JetMove.

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

JET_bitTTSortNullsHigh

Запрашивает сортировку значений ключевых столбцов NULL ближе к концу индекса, чем значения столбцов ключей, отличных от NULL.

JET_bitTTForceMaterialization

Заставляет диспетчер временных таблиц отказаться от поиска оптимальной стратегии для использования управления временной таблицей, что приведет к повышению производительности.

JET_bitTTErrorOnDuplicateInsertion

Любая попытка вставить запись с тем же ключом индекса, что и ранее вставленная запись, немедленно завершится ошибкой с JET_errKeyDuplicate. Если этот параметр не запрашивается, то дубликат немедленно обнаруживается и завершается ошибкой или автоматически удаляется позже в зависимости от стратегии, выбранной ядром СУБД для реализации временной таблицы на основе запрошенных функциональных возможностей.

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

JET_bitTTForwardOnly

Временная таблица создается только в том случае, если диспетчер временных таблиц может использовать реализацию, оптимизированную для промежуточных результатов запроса. Если какая-либо характеристика временной таблицы не позволит использовать эту оптимизацию, операция завершится сбоем с JET_errCannotMaterializeForwardOnlySort.

Побочным эффектом этого параметра является разрешение временной таблице содержать записи с повторяющимися ключами индекса. Дополнительные сведения см. в разделе JET_bitTTUnique.

Windows Server 2003: Этот параметр доступен только в Windows Server 2003 и более поздних выпусках.

prgcolumnid

Выходной буфер, который получает массив идентификаторов столбцов, созданных во время создания временной таблицы.

Идентификаторы столбцов в этом массиве будут точно соответствовать входному массиву определений столбцов. В результате размер этого буфера должен соответствовать размеру входного массива.

cbKeyMost

Максимальный размер ключа, представляющего заданную строку.

Максимальный размер ключа можно задать для управления усечением ключей. Усечение ключа важно, так как оно может повлиять на то, когда строки считаются отдельными.

Если этот параметр имеет значение 0 или JET_cbKeyMostMin (255), максимальный размер ключа и его семантика останутся идентичными максимальному размеру ключа, поддерживаемого Windows Server 2003 и предыдущими выпусками. Для этого параметра можно также задать большее значение в зависимости от размера страницы базы данных для экземпляра (JET_paramDatabasePageSize). Дополнительные сведения см. в разделе JET_paramKeyMost.

cbVarSegMac

Максимальный объем данных, которые будут использоваться из любого столбца переменной длины для создания ключа для данной строки.

Этот параметр можно использовать для управления объемом пространства ключа, используемого любым заданным ключевым столбцом. Это ограничение в байтах. Если этот параметр равен нулю или совпадает с параметром cbKeyMost , ограничение не действует.

tableid

Дескриптор таблицы для временной таблицы, созданной в результате успешного вызова JetOpenTemporaryTable.

Требования

Требование Значение

Клиент

Требуется Windows Vista.

Сервер

Требуется Windows Server 2008.

Верхняя часть

Объявлено в Esent.h.

См. также:

JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
Системные параметры расширяемого подсистемы хранилища