Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: In-Memory Optimized Tables  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3970
Владислав Колосов
Ролг Хупин,

да, надо сказать что их рекламная кампания ставит в заблуждение, на плакате все улыбаются и все довольны. Я тоже когда-то повёлся на эту рекламу. :)
Но потом быстро выяснилось, что технология пригодна лишь для хардкор-реляционных систем.


Это из книжки специалиста, ранее из сПб, но я тоже повелся на 2014 два раза , оба раза бросал, но теперь снова решил попробовать частично мигрировать, тянет на необычное, тем более - обещали же
16 фев 21, 16:18    [22281697]     Ответить | Цитировать Сообщить модератору
 Re: In-Memory Optimized Tables  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1688
Ролг Хупин,

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

начнете огребать ошибки 41302

да и вообще все нюансы самой модели даже при стандартном autocommit доступе должны быть учтены.
16 фев 21, 17:07    [22281731]     Ответить | Цитировать Сообщить модератору
 Re: In-Memory Optimized Tables  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3970
felix_ff
Ролг Хупин,

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

начнете огребать ошибки 41302

да и вообще все нюансы самой модели даже при стандартном autocommit доступе должны быть учтены.


это да, без вопросов, переписывать надо.
Вот, взял 3-4 таблицы, переделал, затем их триггеры, там какие-то прошли, какие-то под вопросом.
Сейчас пытаюсь разобраться как быть с RI между Disk-based table->Memory-Optimized Table.
Обычный Foreign Key не работает, может через обычный триггер прикрутить....
16 фев 21, 17:33    [22281756]     Ответить | Цитировать Сообщить модератору
 Re: In-Memory Optimized Tables  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3970
Как объявить функцию, возвращающую @out table, чтобы она возвращала memory optimized type dbo.TypeOUT?

DROP FUNCTION [dbo].[test01]
GO
CREATE  FUNCTION [dbo].[test01]	(@id int)
	RETURNS @out table  (pid int,pname nvarchar(128))
AS
BEGIN
insert into @out(pid, pname) values(101, N'dobedo')
return;
END

CREATE TYPE dbo.TypeOUT AS TABLE  
(  
	id	int null,
	name nvarchar(128) null,
	RID    INT NOT  NULL  IDENTITY,  
    INDEX ix_RID HASH (RID) WITH (BUCKET_COUNT=1024)
   )   
   WITH (MEMORY_OPTIMIZED = ON);  
GO

select * from dbo.test01(1)
18 фев 21, 17:04    [22282982]     Ответить | Цитировать Сообщить модератору
 Re: In-Memory Optimized Tables  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1688
Ролг Хупин
Как объявить функцию, возвращающую @out table, чтобы она возвращала memory optimized type dbo.TypeOUT?

DROP FUNCTION [dbo].[test01]
GO
CREATE  FUNCTION [dbo].[test01]	(@id int)
	RETURNS @out table  (pid int,pname nvarchar(128))
AS
BEGIN
insert into @out(pid, pname) values(101, N'dobedo')
return;
END

CREATE TYPE dbo.TypeOUT AS TABLE  
(  
	id	int null,
	name nvarchar(128) null,
	RID    INT NOT  NULL  IDENTITY,  
    INDEX ix_RID HASH (RID) WITH (BUCKET_COUNT=1024)
   )   
   WITH (MEMORY_OPTIMIZED = ON);  
GO

select * from dbo.test01(1)


declare @t [dbo].[TypeOUT];

insert into @t 
select * from [dbo].[test01](10);

select * from @t;


если вы хотите что бы у вас функция сразу возвращала тип [dbo].[TypeOUT] - то хрен. такое не возможно.
18 фев 21, 19:37    [22283070]     Ответить | Цитировать Сообщить модератору
 Re: In-Memory Optimized Tables  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3970
felix_ff
Ролг Хупин
Как объявить функцию, возвращающую @out table, чтобы она возвращала memory optimized type dbo.TypeOUT?

DROP FUNCTION [dbo].[test01]
GO
CREATE  FUNCTION [dbo].[test01]	(@id int)
	RETURNS @out table  (pid int,pname nvarchar(128))
AS
BEGIN
insert into @out(pid, pname) values(101, N'dobedo')
return;
END

CREATE TYPE dbo.TypeOUT AS TABLE  
(  
	id	int null,
	name nvarchar(128) null,
	RID    INT NOT  NULL  IDENTITY,  
    INDEX ix_RID HASH (RID) WITH (BUCKET_COUNT=1024)
   )   
   WITH (MEMORY_OPTIMIZED = ON);  
GO

select * from dbo.test01(1)


declare @t [dbo].[TypeOUT];

insert into @t 
select * from [dbo].[test01](10);

select * from @t;


если вы хотите что бы у вас функция сразу возвращала тип [dbo].[TypeOUT] - то хрен. такое не возможно.


Вот-вот, хрен - это тоже ответ
Я хотел заменить функцию инсертящую в @ таблицу и возвращающую её на функцию, которая бы инсертила в MO таблицу и возвращала её, т.е. добиться улучшения производительности.
19 фев 21, 12:03    [22283363]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Microsoft SQL Server Ответить