Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 August 14

O

Oleg in SqlCom.ru - Стиль жизни SQL
Oleg Makarikhin
спасибо, хорошая идея.
есть ли смысл выделять целую NUMA операциоке, и играют ли для неё какую-то роль номера ядер?
Есть смысл сформулировать вопрос на английском, задать его в SQL Slack #sqlhelp, или Твиттер с тегом
источник

К

Какой-то Хмырь... in SqlCom.ru - Стиль жизни SQL
Konstantin Taranov
sqlcmd - портирована под Linux, там конечно же могут быть такие “фичи”. попробуйте ради расового разнообразия https://github.com/dbcli/mssql-cli
также у sqlcmd есть еще забавные “фичи”, связанные с порядком передачи аргументов https://github.com/ktaranov/sqlserver-kit/blob/master/SQL%20Server%20Name%20Convention%20and%20T-SQL%20Programming%20Style.md
In sqlcmd move the -Uand -P parameters after the -Q parameter so that the password is at the end of the command.
Спасибо, кажись реально бага
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
Oleg Makarikhin
спасибо, хорошая идея.
есть ли смысл выделять целую NUMA операциоке, и играют ли для неё какую-то роль номера ядер?
в нормальных условиях выделять что-то отдельно операционке не нужно. у нас регулярно проходит RAP Microsoft и любые изменения параметра аффинити помечаются красным флагом. единственная активность ОС, требующая выделенного ядра это ввод/вывод. но! в современных ОС от МС дисковый ввод/вывод ушёл с 0 ядра и благополучно использует все доступные ядра, а для сети либо включается RSS (и тут далеко не все прозрачно), либо сетевой ввод-вывод не настолько интенсивен, чтобы влиять на работу SQL Server. в общем, если на сервере есть задачи, которые сильно утилизируют процессор, то им на сервере БД не место.
источник

OM

Oleg Makarikhin in SqlCom.ru - Стиль жизни SQL
karb0f0s
в нормальных условиях выделять что-то отдельно операционке не нужно. у нас регулярно проходит RAP Microsoft и любые изменения параметра аффинити помечаются красным флагом. единственная активность ОС, требующая выделенного ядра это ввод/вывод. но! в современных ОС от МС дисковый ввод/вывод ушёл с 0 ядра и благополучно использует все доступные ядра, а для сети либо включается RSS (и тут далеко не все прозрачно), либо сетевой ввод-вывод не настолько интенсивен, чтобы влиять на работу SQL Server. в общем, если на сервере есть задачи, которые сильно утилизируют процессор, то им на сервере БД не место.
оставлены ядра с последними номерами эксклюзивно операциоке, они не нагружены. только 0-е пыхтит.
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
Oleg Makarikhin
оставлены ядра с последними номерами эксклюзивно операциоке, они не нагружены. только 0-е пыхтит.
кем оставлены? операционка использует по-умолчанию все ядра, только дисковый и сетевой ввод/вывод сидит на нулевом ядре нулевого процессора. нет никакого смысла менять аффинити сиквела - это ломает работу распараллеливания при выставленном DOP - у части процессорах групп будет неполный набор ядер
источник

OM

Oleg Makarikhin in SqlCom.ru - Стиль жизни SQL
karb0f0s
кем оставлены? операционка использует по-умолчанию все ядра, только дисковый и сетевой ввод/вывод сидит на нулевом ядре нулевого процессора. нет никакого смысла менять аффинити сиквела - это ломает работу распараллеливания при выставленном DOP - у части процессорах групп будет неполный набор ядер
Администратором, под словом эксклюзивно, имел ввиду запрет sql-ю их использовать
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
Oleg Makarikhin
Администратором, под словом эксклюзивно, имел ввиду запрет sql-ю их использовать
это не имеет никакого смысла. если у вас реально есть просто дикий IO, нужно освободить нулевое/первое ядро нулевого проца, но в реальности скорее всего и этого не нужно.
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
есть ещё и экономическая подоплека - если у вас стандарт, то вы и так ограничены в ресурсах и отдавать что-то ОС должно быть жалко, а если это энтерпрайз, то такие манипуляции - это выбрасывание десятков тысяч долларов,  потраченных на лицензии, в мусор
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Oleg
Есть смысл сформулировать вопрос на английском, задать его в SQL Slack #sqlhelp, или Твиттер с тегом
тогда лучше сразу на https://dba.stackexchange.com/questions/tagged/sql-server и транслировать ссылку на него по всем возможным каналам https://github.com/ktaranov/sqlserver-kit/blob/master/README.md#social
источник

N

Nataxaxaxa in SqlCom.ru - Стиль жизни SQL
Добрый вечер!
Подскажите пожалуйста по задаче:
Необходимо написать хранимую процедуру, на вход которой передается XML и в которой в рамках одной транзакции заполняются таблицы Categories и Products базы данных Northwind. Задание выполнить не используя курсоры и циклы.
Для упрощения поле SupplierID таблицы Products не заполняем.
DECLARE @idoc int, @doc varchar(1000)
SET @doc ='
<ROOT>
<Categories>
 <Category CategoryName="MyCategory_1" Description="My first category description">
   <Products ProductName="Old tee" QuantityPerUnit="1 kg pkg." UnitPrice="10.00"
    UnitsInStock="22" UnitsOnOrder="0" ReorderLevel="5" Discontinued="1"/>
   <Products ProductName="Fresh tee" QuantityPerUnit="2 kg pkg." UnitPrice="20.00"
    UnitsInStock="120" UnitsOnOrder="0" ReorderLevel="25"
   Discontinued="0"/>
   <Products ProductName="Gold tee" QuantityPerUnit="3 kg pkg." UnitPrice="150.00"
    UnitsInStock="3" UnitsOnOrder="0" ReorderLevel="0" Discontinued="0"/>
 </Category>
</Categories>
</ROOT>';-- Создание внутреннего представления XML-документа.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;

SELECT *
 FROM OPENXML (@idoc, '/ROOT/Categories/Category', 2) WITH
 (
   CategoryName char(20) '@CategoryName',
   Description varchar(50) '@Description',
 ProductName char(20) 'Products/@ProductName',
 QuantityPerUnit varchar(50) 'Products/@QuantityPerUnit',
 UnitPrice float(20) 'Products/@UnitPrice',
 UnitsInStock int(10)'Products/@UnitsInStock',
 UnitsOnOrder int(10)'Products/@UnitsOnOrder',
 ReorderLevel int(10)'Products/@ReorderLevel',
 Discontinued int(10)'Products/@Discontinued'
 );
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Nataxaxaxa
Добрый вечер!
Подскажите пожалуйста по задаче:
Необходимо написать хранимую процедуру, на вход которой передается XML и в которой в рамках одной транзакции заполняются таблицы Categories и Products базы данных Northwind. Задание выполнить не используя курсоры и циклы.
Для упрощения поле SupplierID таблицы Products не заполняем.
DECLARE @idoc int, @doc varchar(1000)
SET @doc ='
<ROOT>
<Categories>
 <Category CategoryName="MyCategory_1" Description="My first category description">
   <Products ProductName="Old tee" QuantityPerUnit="1 kg pkg." UnitPrice="10.00"
    UnitsInStock="22" UnitsOnOrder="0" ReorderLevel="5" Discontinued="1"/>
   <Products ProductName="Fresh tee" QuantityPerUnit="2 kg pkg." UnitPrice="20.00"
    UnitsInStock="120" UnitsOnOrder="0" ReorderLevel="25"
   Discontinued="0"/>
   <Products ProductName="Gold tee" QuantityPerUnit="3 kg pkg." UnitPrice="150.00"
    UnitsInStock="3" UnitsOnOrder="0" ReorderLevel="0" Discontinued="0"/>
 </Category>
</Categories>
</ROOT>';-- Создание внутреннего представления XML-документа.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;

SELECT *
 FROM OPENXML (@idoc, '/ROOT/Categories/Category', 2) WITH
 (
   CategoryName char(20) '@CategoryName',
   Description varchar(50) '@Description',
 ProductName char(20) 'Products/@ProductName',
 QuantityPerUnit varchar(50) 'Products/@QuantityPerUnit',
 UnitPrice float(20) 'Products/@UnitPrice',
 UnitsInStock int(10)'Products/@UnitsInStock',
 UnitsOnOrder int(10)'Products/@UnitsOnOrder',
 ReorderLevel int(10)'Products/@ReorderLevel',
 Discontinued int(10)'Products/@Discontinued'
 );
Исключаться из такого места обучения, где передают xml в процедуру
источник

К

Какой-то Хмырь... in SqlCom.ru - Стиль жизни SQL
Я помню как-то доводилось xQuery писать. На тот момент понял, но как после жуткого экзамена всё выветрилось из головы)
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
в боевом режиме это читать просто невозможно. Тестить еще сложнее
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Nataxaxaxa
Добрый вечер!
Подскажите пожалуйста по задаче:
Необходимо написать хранимую процедуру, на вход которой передается XML и в которой в рамках одной транзакции заполняются таблицы Categories и Products базы данных Northwind. Задание выполнить не используя курсоры и циклы.
Для упрощения поле SupplierID таблицы Products не заполняем.
DECLARE @idoc int, @doc varchar(1000)
SET @doc ='
<ROOT>
<Categories>
 <Category CategoryName="MyCategory_1" Description="My first category description">
   <Products ProductName="Old tee" QuantityPerUnit="1 kg pkg." UnitPrice="10.00"
    UnitsInStock="22" UnitsOnOrder="0" ReorderLevel="5" Discontinued="1"/>
   <Products ProductName="Fresh tee" QuantityPerUnit="2 kg pkg." UnitPrice="20.00"
    UnitsInStock="120" UnitsOnOrder="0" ReorderLevel="25"
   Discontinued="0"/>
   <Products ProductName="Gold tee" QuantityPerUnit="3 kg pkg." UnitPrice="150.00"
    UnitsInStock="3" UnitsOnOrder="0" ReorderLevel="0" Discontinued="0"/>
 </Category>
</Categories>
</ROOT>';-- Создание внутреннего представления XML-документа.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;

SELECT *
 FROM OPENXML (@idoc, '/ROOT/Categories/Category', 2) WITH
 (
   CategoryName char(20) '@CategoryName',
   Description varchar(50) '@Description',
 ProductName char(20) 'Products/@ProductName',
 QuantityPerUnit varchar(50) 'Products/@QuantityPerUnit',
 UnitPrice float(20) 'Products/@UnitPrice',
 UnitsInStock int(10)'Products/@UnitsInStock',
 UnitsOnOrder int(10)'Products/@UnitsOnOrder',
 ReorderLevel int(10)'Products/@ReorderLevel',
 Discontinued int(10)'Products/@Discontinued'
 );
И что подсказать
источник

N

Nataxaxaxa in SqlCom.ru - Стиль жизни SQL
Андрій
И что подсказать
какой верный синтаксис?  у меня ошибка Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.

Хотя по гайдам смотрела, должен быть такой
https://docs.microsoft.com/en-us/sql/t-sql/functions/openxml-transact-sql?view=sql-server-ver15
источник

M

Marat in SqlCom.ru - Стиль жизни SQL
Nataxaxaxa
Добрый вечер!
Подскажите пожалуйста по задаче:
Необходимо написать хранимую процедуру, на вход которой передается XML и в которой в рамках одной транзакции заполняются таблицы Categories и Products базы данных Northwind. Задание выполнить не используя курсоры и циклы.
Для упрощения поле SupplierID таблицы Products не заполняем.
DECLARE @idoc int, @doc varchar(1000)
SET @doc ='
<ROOT>
<Categories>
 <Category CategoryName="MyCategory_1" Description="My first category description">
   <Products ProductName="Old tee" QuantityPerUnit="1 kg pkg." UnitPrice="10.00"
    UnitsInStock="22" UnitsOnOrder="0" ReorderLevel="5" Discontinued="1"/>
   <Products ProductName="Fresh tee" QuantityPerUnit="2 kg pkg." UnitPrice="20.00"
    UnitsInStock="120" UnitsOnOrder="0" ReorderLevel="25"
   Discontinued="0"/>
   <Products ProductName="Gold tee" QuantityPerUnit="3 kg pkg." UnitPrice="150.00"
    UnitsInStock="3" UnitsOnOrder="0" ReorderLevel="0" Discontinued="0"/>
 </Category>
</Categories>
</ROOT>';-- Создание внутреннего представления XML-документа.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;

SELECT *
 FROM OPENXML (@idoc, '/ROOT/Categories/Category', 2) WITH
 (
   CategoryName char(20) '@CategoryName',
   Description varchar(50) '@Description',
 ProductName char(20) 'Products/@ProductName',
 QuantityPerUnit varchar(50) 'Products/@QuantityPerUnit',
 UnitPrice float(20) 'Products/@UnitPrice',
 UnitsInStock int(10)'Products/@UnitsInStock',
 UnitsOnOrder int(10)'Products/@UnitsOnOrder',
 ReorderLevel int(10)'Products/@ReorderLevel',
 Discontinued int(10)'Products/@Discontinued'
 );
у вас ошибка в синтаксисе int(10), нужно просто int
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Ребят, кто может помочь, застрял с этой задачей
Есть таблица, где пишутся логи юзеров
действие-роль-имя-datetime
нужно в виде вьюхи представить эту таблицу по типу
9.00 18 августа - Иванов
9.00 18 августа - Петров
9.05 18 августа - Иванов
9.05 18 августа - Петров
9.05 18 августа - Сидоров
Где с шагом 5 минут будут имена тех, кто в это время был active(не совершил logout)
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Alexander
Ребят, кто может помочь, застрял с этой задачей
Есть таблица, где пишутся логи юзеров
действие-роль-имя-datetime
нужно в виде вьюхи представить эту таблицу по типу
9.00 18 августа - Иванов
9.00 18 августа - Петров
9.05 18 августа - Иванов
9.05 18 августа - Петров
9.05 18 августа - Сидоров
Где с шагом 5 минут будут имена тех, кто в это время был active(не совершил logout)
Начать с генерации таблицы с нужными значениями времени, дальше само понятно станет
источник

A

Alexander in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
Начать с генерации таблицы с нужными значениями времени, дальше само понятно станет
На весь год с шагом пять минут?
источник