Size: a a a

2021 February 17

MC

Max Chistyakov in sql_ninja
судя по эксперименту, область существования врем. таблиц уже, чем сессия. Current Scope, по-моему, это называется. Где scope is a module: a stored procedure, trigger, function, or batch.
источник

G

Gopneg in sql_ninja
пиздец же, тут написано что процесс рандомный
источник

G

Gopneg in sql_ninja
тогда конечно надо дропать таблицу на входе, всегда
источник

G

Gopneg in sql_ninja
надо запомнить и выебываться на собесах
источник

MC

Max Chistyakov in sql_ninja
Gopneg
пиздец же, тут написано что процесс рандомный
а я на вечер хотел запланировать проверить, какую таблицу он будет выбирать в таких случаях :)
источник

MC

Max Chistyakov in sql_ninja
Gopneg
надо запомнить и выебываться на собесах
+
источник

ДС

Дмитрий Степанов... in sql_ninja
Max Chistyakov
а я на вечер хотел запланировать проверить, какую таблицу он будет выбирать в таких случаях :)
Да всё логично выбырает.

begin transaction
go

create procedure t1
as
begin
 create table #tab (i int)
 insert into #tab values (1)
 select i as proc_t1 from #tab
end
go

create procedure t2
as
begin
 create table #tab (i nvarchar(10))
 insert into #tab values (2)
 select i proc_t2 from #tab

 exec t1
end
go

create table #tab (i nvarchar(10))
insert into #tab values (0)
select i as i0 from #tab
go

exec t2

select i as i1 from #tab

rollback transaction
go


i0
----------
0

proc_t2
----------
2

proc_t1
-----------
1

i1
----------
0
источник

G

Gopneg in sql_ninja
For example, if a stored procedure creates a temporary table with a named primary key constraint, the stored procedure cannot be executed simultaneously by multiple users.

тоже заебись
летать трезвым читать доку приятно, но необычно (с)
источник

MC

Max Chistyakov in sql_ninja
Gopneg
For example, if a stored procedure creates a temporary table with a named primary key constraint, the stored procedure cannot be executed simultaneously by multiple users.

тоже заебись
летать трезвым читать доку приятно, но необычно (с)
а, да, имена констрэинтов в # таблицах уже точно уникальны даже между разными сессиями. Когда я хотел внутри процедуры создавать временную таблицу с индексами, я к имени индекса конкатенировал рандомный инт, и через sp_executesql делал create index UQ_table_758342 on...
источник

MC

Max Chistyakov in sql_ninja
Дмитрий Степанов
Да всё логично выбырает.

begin transaction
go

create procedure t1
as
begin
 create table #tab (i int)
 insert into #tab values (1)
 select i as proc_t1 from #tab
end
go

create procedure t2
as
begin
 create table #tab (i nvarchar(10))
 insert into #tab values (2)
 select i proc_t2 from #tab

 exec t1
end
go

create table #tab (i nvarchar(10))
insert into #tab values (0)
select i as i0 from #tab
go

exec t2

select i as i1 from #tab

rollback transaction
go


i0
----------
0

proc_t2
----------
2

proc_t1
-----------
1

i1
----------
0
Написано же в доке, порядок не определён)  я хотел проверить это на, не знаю, миллионе вызовов процедуры
источник

G

Gopneg in sql_ninja
запараллелить не забудь
источник

MC

Max Chistyakov in sql_ninja
Max Chistyakov
а, да, имена констрэинтов в # таблицах уже точно уникальны даже между разными сессиями. Когда я хотел внутри процедуры создавать временную таблицу с индексами, я к имени индекса конкатенировал рандомный инт, и через sp_executesql делал create index UQ_table_758342 on...
но в случае именно с констрэинтами, есть хак — создавать их без явного задания имени! Например, не
create table #t (
id int identity,
constraint PK_t_id primary key (a)
)

а коротким способом
create table #t (id int identity primary key)
Тогда снова можно запускать процедуры параллельно 😎
источник

К

Какой-то Хмырь... in sql_ninja
да создавайте времянки, как простые таблицы в tempdb с суффиксом newid()  XD

тогда и проверки к месту)
источник

ДС

Дмитрий Степанов... in sql_ninja
Max Chistyakov
но в случае именно с констрэинтами, есть хак — создавать их без явного задания имени! Например, не
create table #t (
id int identity,
constraint PK_t_id primary key (a)
)

а коротким способом
create table #t (id int identity primary key)
Тогда снова можно запускать процедуры параллельно 😎
Я из-за своей лени, писать дополнительные constraint всегда коротким синтаксисом пользовался.
источник

ДС

Дмитрий Степанов... in sql_ninja
Max Chistyakov
Написано же в доке, порядок не определён)  я хотел проверить это на, не знаю, миллионе вызовов процедуры
источник

AL

Andrey Losev in sql_ninja
хрень какая-то с airflow. Допинал вчерашний dag, данные подтягиваются, в базу кладется 10 строки потом каждые секунд 30 снова
источник

AL

Andrey Losev in sql_ninja
В даге
   schedule_interval='@daily',
   start_date=datetime(2021, 2, 17)
источник

AL

Andrey Losev in sql_ninja
цикл как будто бесконечный, при этом на вебсервере не видно что даг запущен
источник

ДС

Дмитрий Степанов... in sql_ninja
Gopneg
запараллелить не забудь
Так?
источник

ДМ

Димон Мартовский... in sql_ninja
Andrey Losev
цикл как будто бесконечный, при этом на вебсервере не видно что даг запущен
Там же условие в цикле, бегать пока есть строчки в словаре?
А вставляли мы первые 10, вот он походу и бегает, пока там есть строки и по 10 штук вставляет. Но я могу и ошибаться.
источник