Pull to refresh
5
0
Belokrylov Anton @BelAnt

User

Send message
Про Битрикс правда написана, но где взять альтернативу редакции Бизнес по функционалу с грамотной архитектурой? Подобную статью про любую CMS можно написать.

Качественную самописную CMS не каждый интернет-магазин себе сможет позволить, да и поддержка замыкается на разработчика этого решения.
Использовать систему отчетности, например, MS Sql Reporting Service. Создать матричный отчет, а в качестве запроса у нас будет «простой» Select. Почему мы так не сделали? В проекте не так много было отчетов, чтобы внедрять туда SSRS.

Внедрение SSRS занимает не так много времени, но даёт много доп. возможностей — подписки на отчеты, выгрузку в разных форматах и т.п. Плюс пользователи смогут самостоятельно задавать параметры для отчета (выбирать группу объектов).

Со временем количество отчетов будет только расти, потратив время сейчас вы сэкономите его в будущем.
Если в ваших таблицах меньше десятка миллионов записей — используйте COUNT(*) и не заморачивайтесь.
AVG вернет 2
(1 + 2 + 3) / 3 = 2

COUNT(a) вернет 3
А в чем практический смысл отслеживания количества записей по всем таблицам? По идее полезнее считать объем данных и темпы роста этого объема

В SSMS по правому клику на БД можно достаточно быстро сформировать отчет, который содержит как количество строк, так и объем данных по всем таблицам: Reports -> Standard Reports -> Disk Usage by Table
Правильный код для п.5 (про кавычки в строках)

declare @s varchar(100) = 'Number ''1'' '
declare @paramDefinition nvarchar(500) = '@str varchar(100)';
declare @sql nvarchar(100) = 'select String = @str'

EXECUTE sp_executesql @sql, @paramDefinition, @str = @s
В любом случае, для написания параметризированных динамических запросов лучше использовать sp_executesql, а не execute. Тогда вы сможете явно указать типы переменных и защититесь от SQL-инъекций. У вас пропадут проблемы со строками, датами, числами и их округлением + кеширование заработает.

declare @i int 
declare @paramDefinition nvarchar(500) = '@num int';
declare @sql nvarchar(100) = 'select @num'

EXECUTE sp_executesql @sql, @paramDefinition, @num = @i -- NULL не приводит к ошибке
Во всех ваших примерах динамический T-SQL вообще не нужен. Для выполнения запросов с разными параметрами сгодится обычная хранимая процедура.
Синхронизацию 1С и 1С-Битрикс можно настроить гораздо дешевле, особенно если вы разбираетесь в 1С.
Вместо гаек с винтами можно клёпки использовать, чтобы читы с отверткой исключить.

Не в ту ветку комментарий написал…
У RedGate есть инструмент по автогенерации документации в различных форматах, вы не пытались автоматизировать этот процесс? Кубы и пакеты тоже ревью в Atlassian Fisheye/Crucible проходят?
Ваш отдел не занимается разработкой отчетов SSRS, dtsx-пакетов, OLAP-кубов? Напишите пожалуйста про документацию )
Решение с ударами от борта очень красивое, да и вообще проделана огромная работа. В таблице представлена реальная вероятность выигрыша для вашего бота или это просто пример?
У меня нет балкона и рабочее место располагается рядом с окном, поэтому не хочется нарушать «герметичность» конструкции. Думаю вообще отказаться от внешнего датчика и брать чужие данные с narodmon.ru/.
Поделитесь, как вы вынесли датчик температуры за окно и как организовали защиту от попадания прямых солнечных лучей.
Поделитесь, как вы вынесли датчик температуры за окно и как организовали защиту от попадания прямых солнечных лучей.

Ошибся веткой, извините.
Перезагрузка студии не влияет на время выполнения запросов )
А если внутри хранимой процедуры OPTION (RECOMPILE) добавить (убрав чихарду с переменными)?
Я бы даже сказал, что это единственный полезный комментарий по теме ))

Вы пробовали запустить SELECT * FROM Table WHERE time >= @StartDate AND time <= @EndDate OPTION (RECOMPILE) в очете?
Уважаемый минусующий, прокомментируйте свою точку зрения по этому вопросу

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity