Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Integer array в колонке у MEMORY_OPTIMIZED таблицы  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
Я хочу чтобы у меня можно было в колонке записать "7016207,7016208,7016209,7016210,7016211,7016212". Единственный способ это сделать без XML известный мне - это сделать user defined table type:
DROP TYPE StepIds
CREATE TYPE dbo.StepIds AS TABLE (
	iWorkflowId INT NOT NULL PRIMARY KEY NONCLUSTERED
) WITH (MEMORY_OPTIMIZED = ON )


но он не вставляется в табличкку при MEMORY_OPTIMIZED
CREATE TABLE [dbo].[ProcessTable]
(
	[iProcessID] [int] NOT NULL,
	tStepIds StepIds
CONSTRAINT [PK_Workflow] PRIMARY KEY NONCLUSTERED (iWorkflowProcessID ASC)
)WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA )


Msg 350, Level 16, State 1, Line 18
The column "tStepIds" does not have a valid data type. A column cannot be of a user-defined table type.


Может я что то даже не в ту сторону думаю, если кто подскажет как этого же достичь может и подругому - благодарю заранее. Вопрос теоретический, поэтому прошу не предлагать мне делать Parent->Child табличку.

автор
Microsoft SQL Server 2014 (CTP2) - 12.0.1524.0 (X64)
Oct 3 2013 19:00:26
Copyright (c) Microsoft Corporation
Enterprise Evaluation Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
11 фев 14, 01:02    [15549016]     Ответить | Цитировать Сообщить модератору
 Re: Integer array в колонке у MEMORY_OPTIMIZED таблицы  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
В качестве полей Memory optimized table можно использовать только простые типы SQL Server: http://msdn.microsoft.com/en-us/library/dn133179(v=sql.120).aspx. XML, кстати, тоже нельзя. В таком случае, вам остаётся comma delimited string (nvarchar(n)), но нужно также учесть ограничение на максимальную длину строки в таблице 8060 байт.
11 фев 14, 03:51    [15549104]     Ответить | Цитировать Сообщить модератору
 Re: Integer array в колонке у MEMORY_OPTIMIZED таблицы  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
BusyMan
array ... MEMORY_OPTIMIZED ... CREATE TYPE AS TABLE ... XML ... comma delimited string
Смешались в кучу кони, люди ...
BusyMan
Может я что то даже не в ту сторону думаю
Вы даже не представляете на сколько.
BusyMan
Вопрос теоретический, поэтому прошу не предлагать мне делать Parent->Child табличку
На этом тема исчерпана. Не успев начаться.

Relation DataBases
11 фев 14, 04:05    [15549106]     Ответить | Цитировать Сообщить модератору
 Re: Integer array в колонке у MEMORY_OPTIMIZED таблицы  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
Crimzic
В качестве полей Memory optimized table можно использовать только простые типы SQL Server: http://msdn.microsoft.com/en-us/library/dn133179(v=sql.120).aspx. XML, кстати, тоже нельзя. В таком случае, вам остаётся comma delimited string (nvarchar(n)), но нужно также учесть ограничение на максимальную длину строки в таблице 8060 байт.

Спасибо.. там вон рядышком аж целый сборник таких глупых вопросов ))
Migrating to In-Memory OLTP

Хотя, мне все же не очевидно что будет быстрее - делать Split("1,2,3,7,11") или лазить в in-memory табличку махонькую.. Вот чесное(98%) слово, не поленюсь и померию что быстрее (в предположении что в таблице 300К строк по 200Б а чисел через запятую - пара/пяток).
11 фев 14, 04:33    [15549115]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить