Обновить
64K+

Microsoft SQL Server *

Система управления реляционными базами данных

12,17
Рейтинг
Сначала показывать
Порог рейтинга
Москва - СУБД Digital Q.DataBase
Москва - СУБД Digital Q.DataBase

🚨 Мы в Diasoft запускаем свою серию мероприятий по СУБД.
Первое — уже 21 апреля 2026: конференция о промышленной эксплуатации и архитектуре корпоративных данных.

Место проведения — Москва, Кибердом.

Я выступлю с двумя докладами:

🔥 Как мы воспроизводим функциональность MS SQL и переносим решения без переписывания
🔥 Digital Q.CDC — когда критична синхронизация изменений данных.

❯ В нашей программе намечается много интересного, в том числе обсудим:

🔹 как мы воспроизводим функциональность Oracle
🔹 практика импортозамещения и работа с высоконагруженными системами
на базе Digital Q.DataBase
🔹 Low-Code подходы и замещение зарубежных платформ
🔹 единая работа данных для OLTP и OLAP
🔹 развитие инструментов управления СУБД
🔹 как формируется СУБД за счет объединения компетенций и технологий

Наши профессионалы подробно объяснят реальные кейсы и практику внедрения.

Обязательно регистрируйтесь

https://dbd.diasoft.ru/?utm_source=andrei#programme

Увидимся! 🚀

📎 Полезные ссылки 
🔹 Бесплатное получение дистрибутива: https://database.diasoft.ru/?utm_source=andrei
🔹 Документация: доступна внутри дистрибутива 
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹 Канал в MAX: https://max.ru/join/orlthIssLJbjj37mjlEEYARWFyuJk5yMixLlGPISIzc

Теги:
+4
Комментарии0
Digital Q.DataBase 18 - SSRS
Digital Q.DataBase 18 - SSRS

🔹 Всем привет. Сегодня хочу рассказать Вам о том, как мы склонировали у себя один из самых "прикладных" сервисов из поставки Microsoft SQL Server.

➡️ Речь пойдет об SQL Server Reporting Services (SSRS) - механизме, который позволяет получать разнообразные отчеты, запрашивая их построение по API или по расписанию.

➡️ Представьте ситуацию: Вы использовали Microsoft SQL Server и у Вас было несколько сотен разнообразных отчетов, что ранее строились на основе данных в Ваших БД. И тут импортозамещение! Надо переходить на российское решение из Реестра Минцифры.
Для замены СУБД самый легкий вариант такого перехода - Digital Q.DataBase. Мастер переноса БД поможет перенести данные, Мастер сравнения БД проверит корректность переноса, Digital Q.CDC обеспечит синхронизацию данных в обеих СУБД, что позволит сократить до нескольких минут сам момент перехода.
Но что делать с сотнями отчётов, что привыкли получать Ваши пользователи?

Оставить как есть, пусть строятся при помощи зарубежного инструмента?
Вряд-ли это приемлемо. Какое-то очень кусочное импортозамещение получается!

Переписать на другом инструменте? Даже из расчета по дню на отчёт это сотни человеко-дней "ручного труда", а потом тестирование, выгребание ошибок, восстановление порушенных интеграций (построение некоторых отчетов могло запрашиваться извне, через API). Тоже так себе вариант!

➡️ Мы предлагаем более живую альтернативу: воспользоваться нашей реинкарнацией службы отчетов. 

На приложенных скриншотах два отчёта. Один построен в оригинальном инструменте, второй у нас. Как видите, они очень похожи, более того построены по одному и тому же шаблону, что был перенесен из оригинала к нам при замене СУБД.

Внешний вид и API - все сохранено. Как говорят наши "заокеанские партнеры" - настоящий "drop-in replacement" (безшовная замена одного инструмента другим).
Именно так и должно выглядеть хорошо проработанное импортозамещение.

Благодарю за внимание к этому посту!

📎 Полезные ссылки
🔹 Бесплатное получение дистрибутива: https://database.diasoft.ru/?utm_source=andrei
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: https://t.me/dqdatabase
🔹 Канал в MAX: https://max.ru/join/orlthIssLJbjj37mjlEEYARWFyuJk5yMixLlGPISIzc

Теги:
+5
Комментарии0

Друзья, Digital Q.DataBase позволяет Вам не только сохранить прикладную логику СУБД Microsoft и Oracle.

🔹 В связке с другим нашим продуктом, предназначенным для замены SAP NetWeaver, Вы получаете возможность уйти от использования продуктов SAP без переписывания систем и без переписывания бизнес-логики.

Что это означает на практике:

🔹 ABAP-приложения продолжают работать на новой платформе
🔹 Данные и обработка переносятся в Digital Q.DataBase
🔹 Вся бизнес-логика сохраняется без изменений
🔹 Формируется импортонезависимый стек из отечественного ПО

🔹 В этом видео: 

ABAP-код → сохранение → активация → преобразование в C++ → компиляция → установка на сервер → запуск

📎 Полезные ссылки
🔹 Отдельный лендинг по замене SAP: renovation.diasoft.ru
🔹 Бесплатное получение СУБД дистрибутива: database.diasoft.ru
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: t.me/dqdatabase

Теги:
+3
Комментарии0

🔹 Стоит ещё раз подчеркнуть важную мысль: переход на российскую СУБД не обязательно означает полное переписывание системы.

До сих пор многие не воспринимают это как реальную возможность.
Крупные системы на Oracle или Microsoft можно переводить иначе. Без многолетней переработки всего кода. Достаточно перенести данные и изменить настройки.

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

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

🔹 Мы предлагаем другой подход. В нашем подходе меняется само представление о миграции: не обязательно адаптировать приложение под PostgreSQL. Можно пойти другим путём, реализовать в СУБД функциональность, совместимую с зарубежными системами.

🔹 Если бы такой подход начали применять раньше, страна могла бы сэкономить колоссальные ресурсы.

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

📎 Полезные ссылки
🔹 Бесплатное получение дистрибутива: database.diasoft.ru
🔹 Документация: доступна внутри дистрибутива
🔹 Telegram-сообщество Digital Q.DataBase: t.me/dqdatabase

Cnews 12.03.2026 | МОСКВА
Cnews 12.03.2026 | МОСКВА
Теги:
+4
Комментарии2

Скрипт очистки логов всех баз MSSQL

Изначально статья была выложена на своём сервере https://ast-1c.kz/almasoft/?p=1443

Ничего сверхъестественного, но может кому пригодится:)

В процессе работы с сервером 1С, который в качестве сервера баз данных использует MSSQL сервер, очень часто приходится решать задачу по очистке логов базы. Сама по себе задача достаточно тривиальная и решается исполнением скрипта (при полной модели восстановления):

USE база_данных;  
GO  
-- Изменяем модель восстановления базы данных на SIMPLE.  
ALTER DATABASE база_данных
SET RECOVERY SIMPLE;  
GO  
-- Обрезаем LOG файл до 1 мегабайта.  
DBCC SHRINKFILE (база_данных_log, 1);  
GO  
-- Возвращаем модель восстановления базы данных на FULL.  
ALTER DATABASE база_данных
SET RECOVERY FULL;  
GO

либо же для базы использующей простой тип модели восстановления:

USE база_данных;  
GO  
-- Обрезаем LOG файл до 1 мегабайта.  
DBCC SHRINKFILE (база_данных_log, 1);  
GO  

Всё, просто и хорошо, но вот если на сервере скажем 100 баз, писать такой скрипт для каждой в отдельности — это не очень приятное задание, да и времени уйдет предостаточно. А ещё есть одно неудобство — если в последствии будет добавлена очередная база, то Вы не должны забыть и для неё прописать отдельный скрипт. Очень часто базы добавляют программисты 1С, а вот слежение за состоянием сервера ложится на плечи системного администратора. Ну и тут главное не просмотреть этот момент. В общем не очень удобная штука.

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

Declare @name varchar(100)
declare @qu as varchar(1200)
declare icur cursor fast_forward for

SELECT name
FROM sys.databases
WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb')
--and recovery_model_desc = 'FULL'

open icur
 fetch next from icur into @name
 While @@Fetch_Status = 0 

Begin
  Set @qu='use [' + @name + '] Declare @logname varchar(64), @size int'
  Set @qu=@qu + ' Set @logname = (SELECT [name] FROM [sys].[database_files]  where type_desc=''LOG'')'
  Set @qu=@qu + ' Set @size = (SELECT max_size FROM [sys].[database_files]  where type_desc=''LOG'') * 0.7/128'
  Set @qu=@qu +  ' ALTER DATABASE [' + @name + ']  SET RECOVERY SIMPLE DBCC SHRINKFILE (@logname, 7)'
  Set @qu=@qu + ' ALTER DATABASE [' + @name + ']  SET RECOVERY FULL'
  Exec (@qu) 
  Set @qu = '' 
  fetch next from icur into @name
END
close icur

SELECT name
FROM sys.databases
WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb')
--and recovery_model_desc = 'SIMPLE'

open icur
 fetch next from icur into @name
 While @@Fetch_Status = 0 

Begin
  Set @qu='use [' + @name + '] Declare @logname varchar(64), @size int'
  Set @qu=@qu + ' Set @logname = (SELECT [name] FROM [sys].[database_files]  where type_desc=''LOG'')'
  Set @qu=@qu + ' Set @size = (SELECT max_size FROM [sys].[database_files]  where type_desc=''LOG'') * 0.7/128'
  Set @qu=@qu +  ' ALTER DATABASE [' + @name + ']  SET RECOVERY SIMPLE DBCC SHRINKFILE (@logname, 7)'
  Exec (@qu) 
  Set @qu = '' 
  fetch next from icur into @name
END
close icur
deallocate icur

DBCC SHRINKDATABASE (TEMPDB);

Скачать готовый на GitHub Gist

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

В Фреймворк DBGridChart добавлено OLAP-приложение "Экспресс_обработка_таблицы.exe ", позволяющее при разработке программ на C++, Java, Visual Basic, F# и на других языках программирования (имеющих средства выполнения из программы готовых приложений из командной строки с параметрами) автоматическое формирование табличных и ленточных форм, форм с диаграммами и графиками с готовым унифицированным многофункциональным интерфейсом пользователя для корректировки баз данных, OLAP-анализу и прогнозированию данных в табличной и в графической формах.

Таким образом, программист при разработке приложения, даже на языке, отличным от C#, может использовать все средства и возможности Фреймворка DFGridChart путем обращения к приложению "Экспресс_обработка_таблицы.exe " с указанием через параметры значения свойствам, например: текст строки подключения к базе данных, текст команды Select, текст строки подстановки. Порядок формирование таких таблиц определяется интерфейсом (меню, кнопки), разрабатываемого программистом для приложения.

Гиперссылка для скачивания Фреймворка "DBGridChart", OLAP-приложения "Экспресс_обработка.exe" и "Экспресс_обработка_таблицы.exe " с исходными текстами, DLL-библиотеками, документацией и с демонстрационными примерами: https://disk.yandex.ru/d/sI1VhBiSPzDp-A

Пример обращения к приложению "Экспресс_обработка_таблицы.exe " при разработке программы на C++

#include <string>

...

// Символ # должен быть указан перед наименованием свойства!// Внутри строковых констант перед символами \ и " нужно указывать символ \
std::string
program = "C:\\Экспресс_обработка_таблицы\\bin\\Debug\\Экспресс_обработка_таблицы .exe", // Местоположение приложения
p1 = "#ConnString=Provider = Microsoft.Jet.OLEDB.4.0;Data Source="C:\\Демонстрационный пример Экспресс обработка таблицы для C++\\Выпуск изделий.mdb", // Строка подключения к базе данных
p2 = "#DBMS = Access", // Тип СУБД, если не указан (p2 не указано), то определяется по строке подключения
p3 = "#Select = SELECT Подразделения.[Код подразделения]@#,Подразделения.[Наименование подразделения]*, Подразделения.[Численность на 2022], Подразделения.[Численность на 2023], Подразделения.[Численность], Подразделения.[Дата формирования], Подразделения.[Код типа подразделения]*, [Типы подразделений].[Наименование типа подразделения], Подразделения.[Действующее] FROM [Типы подразделений] RIGHT JOIN Подразделения~ ON [Типы подразделений].[Код типа подразделения] = Подразделения.[Код типа подразделения] ORDER BY Подразделения.[Наименование подразделения]", // Запрос с возможностью корректировки таблицы Подразделения. Специальные символы при режиме корректировки после имен полей или псевдонимов: ключевое (@), обязательное (*), не корректируемое (#) поле и после имени корректируемой таблицы указывается символ ~, если таблиц несколько во фразе From.
p4 = "#Podstavit_v_kolonki = ктп #-; SELECT [Наименование типа подразделения], [Код типа подразделения] FROM [Типы подразделений] ORDER BY [Наименование типа подразделения]", //Подстановка кода типа подразделения в колонку с именем ктп по наименованию путем выбора мышкой из списка (сформированного указанной командой Select) наименований типов подразделений. Режимы подстановки: только из списка (-), список открывается в текущей ячейке (#).
p5 = "#Flag_Create_SQL_Select = True", // Разрешить (True)/не разрешить (False) использовать конструктор команд SQL (по умолчанию - True и p5 можно не указывать)
p6 = "#Table_№ = 2367", // Уникальный номер (обычно, случайное число) таблицы или запроса для сохранения макета настройки индивидуально для таблицы
parameters = p1 + p2 + p3 + p4 + p5 + p6, // параметры приложения
command = program + " " + parameters; // командная строка
system(command.c_str()); // выполнение приложения, которое формирует табличную форму с многофункциональным унифицированным интерфейсом Фреймворка DBGridChart

Теги:
Всего голосов 16: ↑1 и ↓15-14
Комментарии0

SQL Server 2022 - GENERATE_SERIES

Конструкция GENERATE_SERIES - это новая функция в T-SQL 2022, которая может использоваться для генерации последовательностей значений в запросах. Эта функция подобна аналогичной функции в других языках программирования, например, в PostgreSQL.

Одной из основных применений функции GENERATE_SERIES в T-SQL является генерация последовательности чисел. Вот пример использования этой функции для генерации последовательности чисел от 1 до 10:

SELECT value FROM GENERATE_SERIES(1, 10)

Этот запрос вернет следующий результат:

value
1
2
3
4
5
6
7
8
9
10

Функция GENERATE_SERIES может принимать два или три аргумента: начальное значение, конечное значение и опциональный шаг. В приведенном выше примере начальным значением было 1, конечным значением - 10, а шаг был опущен, поэтому значения генерировались с шагом 1.

Функция GENERATE_SERIES также может использоваться для генерации последовательностей букв и даже дат. Вот пример использования этой функции для генерации последовательности букв от 'A' до 'Z' и дат между '2022-01-01' и '2022-01-10'

SELECT
    CHAR(value + 64) AS letter 
FROM GENERATE_SERIES(1, 26);

SELECT 
    DATEADD(day, number-1, '2022-01-01') AS Date
FROM GENERATE_SERIES(1, DATEDIFF(day, '2022-01-01', '2022-01-10') + 1)

Вы можете протестировать эти у другие запросы на сайте SQLize.online

Всего голосов 9: ↑9 и ↓0+9
Комментарии1