Как стать автором
Обновить
4.72
Рейтинг

Microsoft SQL Server

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

И снова про MS Excel

SQLMicrosoft SQL ServerVisual Basic for ApplicationsData Engineering

Однажды в моем инстаграме появились сразу несколько блоков рекламы по поводу ознакомительных курсов нескольких Российских онлайн-школ на тему "Аналитика данных на Python для чайников". Подумав о том, что можно с пользой для себя провести несколько часов и прокачать свои навыки по анализу, я записался и посетил данные курсы. Самое забавное, что практически все что я видел начиналось словами: "Давайте выбросим MS Excel (далее с вашего позволения просто - "эксель") и начнем работать на Python". Возмущению моему не было предела. В разумных рамках. Пройдя свой путь от разработчика (до черти как это назвать) и постоянно работая с данными, могу только привести в ответ фразу знаменитого персонажа Alf - "Вы просто не умеете их готовить".

Что можно готовить на VBA?
Всего голосов 15: ↑13 и ↓2+11
Просмотры15K
Комментарии 81

Новости

Показать еще

О лицензировании MS SQL по подключениям (CAL)

Microsoft SQL ServerАдминистрирование баз данныхЗаконодательство в IT

О лицензировании MS SQL по подключениям (CAL)

Лицензирование у Майкрософт непростое и многие считают, что в трехзвенной архитектуре могут существенно сэкономить, лицензируя в Microsoft SQL Server только одно подключение сервера приложений, не учитывая подключения клиентов к серверу приложений. Об ошибках, допускаемых при лицензировании по клиентам далее подробнее.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Просмотры4K
Комментарии 10

Создание таблицы субъектов РФ в формате Geography T-SQL (SQL Server)

PythonMicrosoft SQL Server
Из песочницы

В процессе подготовки инструмента для автоматического определения субъекта РФ по точке (тип данных Point) потребовалась таблица вида "Субъект РФ" - "geography::Object".

Предыстория: есть большой автопарк (>1000 ТС), который отправляет свои координаты на сервер в составе данных "Машина" - "Момент времени UTC" - "geography::Point". На сервере есть вторая таблица определенных событий по транспортному средству в составе данных "Машина" - "Момент времени (местное время)" - "Событие". Две задачи - перевести время во второй таблице из местного в UTC и далее использовать обе таблицы для дальнейшей автоматизации аналитики по событиям ТС в привязке к субъектам РФ.

Поиск в гугле по фразе "geojson субъекты РФ" привел на страницу https://gist.github.com/max107/6571147 - на ней в формате JSON перечислены субъекты и списки точек координат - границ.

Если вы пробежитесь по тексту, то структура этого JSON такая: на верхнем уровне один блок - один субъект. На следующем уровне вниз - блоки с нумерацией от 0 до, кажется, 19. Это означает, что субъект состоит из нескольких областей и каждая из них - это отдельный полигон (многоугольник). В файле нет Крыма, Севастополя. В файле не выделены Москва и СПб. Крым я дорисую сам, а Мск и СПб для моих задач не принципиальны.

Мы получили продукт кропотливого труда (спасибо большое автору этого массива координат и блоков) - полигоны и их границы. Осталось понять как его разобрать, забросить на сервер и сконструировать финальную таблицу.

Скорее всего есть более простые способы решения этой задачи, но, решая её поэтапно, удалось более детально разобраться в структуре объектов, попробовать методы работы с пространственными данными.

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Просмотры2.7K
Комментарии 0

Linked Server MSSQL. Оптимизация производительности в 30 раз

.NETSQLMicrosoft SQL ServerC#

Имеем запрос вида:

insert into LocalDatabaseName.dbo.TableName (column1, column2, ..., columnN)

select column1, column2, ..., columnN

from LinkedServerName.RemoteDatabaseName.dbo.TableName

Столкнулся с тем, что подобный запрос выполняется на 40k (40000) записей больше минуты. С ростом количества подобных запросов или количества записей, производительность сильно падает и оптимизировать запрос средствами SQL никак нельзя.

С помощью приложения ImportExportDataSql мне удалось ускорить этот запрос до 2 секунд, не используя LinkedServer.

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Просмотры8K
Комментарии 8

Ваш скрипт, обслуживающий индексы, измеряет не то, что надо

Microsoft SQL ServerАдминистрирование баз данных
Перевод

Мой Дорогой Друг Шон недавно написал пост, рассказывающий о том, как люди неправильно обслуживают индексы. Я собираюсь зайти немного дальше и поговорить о том, что сам метод, которым ваш скрипт, обслуживающий индексы, оценивает фрагментацию индексов - неправильный.

Если вы посмотрите на то, как ваш скрипт решает нужно или нет перестраивать индексы, и тоже самое касается планов обслуживания (я запускал ПРОФАЙЛЕР ДА ЗДРАВСТВУЕТ ПРОФАЙЛЕР ВПЕРЁД ПРОФАЙЛЕР чтобы проверить), вы увидите, что они выполняют запрос к sys.dm_db_index_physical_stats.

Все эти запросы используют столбец avg_fragmentation_in_percent, чтобы понять - нужно ли перестроить индекс

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Просмотры1.8K
Комментарии 9

Управление и оптимизация баз данных SQL Server в ApexSQL — анонс вебинара

Блог компании Gals SoftwareSQLMicrosoft SQL ServerАдминистрирование баз данных
ApexSQL — это комплексный набор инструментов, который оптимизирует и автоматизирует процессы управления базами данных SQL Server и разработки, а также обеспечивает безопасность и соответствие требованиям. В одной из прошлых статей мы описывали бесплатные и платные инструменты ApexSQL (там и правда есть из чего выбрать).

image

Приглашаем вас зарегистрироваться на вебинар, который состоится 19 мая в 11 часов утра по московскому времени. Вы узнаете о линейке решений ApexSQL, бесплатных и платных возможностях продуктов, подходе к лицензированию, а также сможете задать вопросы.

Под катом список решений ApexSQL с кратким описанием и ссылками на соответствующие страницы на сайте вендора.
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Просмотры1.1K
Комментарии 0

Как быстрее всего передавать данные с PostgreSQL на MS SQL

PostgreSQLSQLMicrosoft SQL Server
Tutorial

Однажды мне потребовалось забирать регулярно относительно большие объемы данных в MS SQL из PostgreSQL. Неожиданно выяснилось, что самый очевидный способ, через Linked Server на родные ODBC к PostgreSQL, очень медленный.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Просмотры4.2K
Комментарии 82

Удивительная однозвенка на MS SQL

Ненормальное программированиеMicrosoft SQL ServerERP-системыИстория IT

... с объектной ориентированностью, сериализацией, reflection, полиморфизмом, визуальным программированием, no-code, блэкджеком и шлюхами - и это на MS SQL 6.5 в 1995 году!

Знакомые с историей IT при слове "однозвенка" вспомнят dBase и Clipper. Однако, я расскажу об ERP однозвенке на MS SQL. Интерфейсная программа для этой ERP общалась с базой через несколько интерфейсных таблиц и несколько процедур. То есть фактически она является браузером, который за слой не считается. Да, это #ненормальное программирование, которое дало ряд уникальных свойств.

Иногда ведь хочется ручку настройки повернуть до максимума и довести идею до абсурда логического завершения. Как говорили родители одному из героев фильма "О чем говорят мужчины, продолжение" - "Так ты дойдешь до черте-чего!", а он думал "Так уже хочется взять и дойти до этого черте-чего!".

Немного некрофилии
Всего голосов 19: ↑19 и ↓0+19
Просмотры4.5K
Комментарии 40

Мониторинг популярных баз данных из единого интерфейса Quest Foglight — анонс вебинара

Блог компании Gals SoftwareMySQLOraclePostgreSQLMicrosoft SQL Server
Foglight for Databases — удобный инструмент для DBA, который поддерживает мониторинг SQL Server, Oracle, MySQL, PostgreSQL, DB2, SAP ASE, MongoDB и Cassandra. И всё это в одном интерфейсе.

Кроме этого, инструмент позволяет сравнивать производительности БД в разные периоды времени (например, до релиза и после него), а также выполнять сравнение производительности различных экземпляров.

image

Приглашаем вас зарегистрироваться на вебинар, который состоится 7 апреля в 11 часов по московскому времени. Вы узнаете о возможностях решения, кейсах использования, лицензировании и сможете задать интересующие вопросы. Если вы не сможете присутствовать на вебинаре, в любом случае оставьте ваши контактные данные, мы вышлем вам запись после мероприятия. Под катом описание функционала решения и несколько скриншотов.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Просмотры977
Комментарии 4

DataGrip 2021.1: Редактирование прав, контекстные шаблоны, предсказуемая навигация и не только

Блог компании JetBrainsMySQLPostgreSQLSQLMicrosoft SQL Server

Привет!

Сегодня мы выпустили DataGrip 2021.1: наш самый мощный релиз за последние годы. И это не шутка!

И что же там за фичи?
Всего голосов 9: ↑9 и ↓0+9
Просмотры2.6K
Комментарии 0

Email Chart — это вам не ASCII Art

Ненормальное программированиеSQLPowerShellMicrosoft SQL ServerАдминистрирование баз данных

Отправляем графики (peformance, да и вообще все что угодно) по почте с PROD серверов, куда просто так не добраться .

Мужик! Графики по почте? Что, cерьезно? Web интерфейс, интерактивность, Grafana - "нет, не слышал"? Ты бы еще звездочками графики нарисовал бы в письме, ASCII art-ом. - говорит мне мой воображаемый оппонент.

Конечно, он абсолютно прав в идеальном, воображаемом мире. Это вам подтвердит любой пролетающий там розовый единорог. Однако, если мы не в стартапе, а в кровавом enterprise, то все не так розово.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Просмотры2K
Комментарии 3

Heap-таблицы и forwarded-записи в SQL Server

Блог компании OTUSSQLMicrosoft SQL Server
Перевод

В SQL Server наименьшая единица хранения — это страница в 8 КБ с 96-байтовым заголовком, в котором хранится системная информация. 

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

Кластерный индекс  (clustered index)

Данные хранятся в виде B+ — дерева в соответствии с заданным ключом кластерного индекса. SQL Server сохраняет строки в правильной логической последовательности.

Куча (heap)

Куча — это таблица без кластерного индекса. Данные в куче хранятся без какого-либо логического порядка. Между страницами нет никакой связи. Хотя для кучи можно создать некластерный индекс, который будет содержать физический адрес исходных данных. В некластерном индексе для каждой записи содержится номер файла, номер страницы и номер слота внутри этой страницы.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Просмотры2.3K
Комментарии 5

Тёмная сторона SQL Server In-Memory OLTP

Microsoft SQL ServerАдминистрирование баз данных

Пару лет назад, в разговоре с кем-то промелькнула примерно такая фраза: "Мы используем In-Memory OLTP - это очень быстро, зачастую даже вместо временных таблиц создаём In-Memory и всем советуем". Спустя какое-то время, мне задали вопрос как можно держать одну таблицу в памяти, чтобы работать с ней максимально быстро. Выяснив подробности - небольшая таблица, данные должны храниться только за последние несколько минут, суммарно не больше 10000 записей "приемлемых" (не LOB) типов данных, потеря данных при перезагрузке/файловере не страшна и даже приветствуется. In-Memory OLTP, без тени сомнения ответил я.

Перед запуском в продакшн я излазил всю документацию, проводил свои тесты - просто огонь. Работает реально быстро, таблица SCHEMA_ONLY и IO не генерирует вообще (я же умный, смотрю sys.dm_io_virtual_file_statss до и после). С обращениями через natively compiled stored procedures - не просто быстро работает, летает. Одним словом мечта.

Правда, оказалось, что у моей мечты есть тёмная сторона.

Переходи на тёмную сторону %username
Всего голосов 11: ↑11 и ↓0+11
Просмотры6.6K
Комментарии 12

Пожалуйста, прекратите использовать антипаттерн UPSERT (SQL Server)

Блог компании OTUSSQLMicrosoft SQL Server
Перевод

Я думаю, что все уже знают мое мнение о MERGE и почему я держусь от него подальше. Но вот еще один антипаттерн, который я постоянно встречаю, когда требуется выполнить UPSERT (UPdate inSERT — обновить строку, если она существует, и вставить, если ее нет):

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Просмотры13K
Комментарии 16

Мониторинг SQL Server в Quest Spotlight — анонс вебинара

Блог компании Gals SoftwareMicrosoft SQL ServerАдминистрирование баз данных
Spotlight — простой, но при этом функциональный инструмент для мониторинга Microsoft SQL Server. На одном экране вы сможете наблюдать за статусами всех экземпляров баз данных с возможностью провалиться на уровень экзепляра и увидеть подробности.



В интерфейсе Spotlight вы сможете увидеть проблемные запросы, execution plans, советы по устранению проблем (например, совет при созданию индекса при наличии обнаружении scan-запросов или автоматическую генерацию скрипта дефрагментации) и другую диагностическую информацию. Spotlight можно назвать инструментом для повседневного мониторинга, который автоматизирует обслуживание и поддержку ваших инстансов баз данных. Подойдет для мониторинга базы данных 1С.

Запись вебинара

Приглашаем вас зарегистрироваться на вебинар, который состоится 10 марта в 11 часов по московскому времени. Вы узнаете о возможностях решения, кейсах использования, лицензировании и сможете задать интересующие вопросы. Если вы не сможете присутствовать на вебинаре, в любом случае оставьте ваши контактные данные, мы вышлем вам запись после мероприятия. Под катом описание функционала решения и несколько скриншотов.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Просмотры2K
Комментарии 1

Хранимая процедура с возвращаемыми значениями в SSIS

Блог компании OTUSMicrosoft SQL Server

При всем моем двадцатилетнем опыте работы с MS SQL Server и SSIS (когда-то еще DTS), никогда не любил хранимые процедуры с возвращаемым значением. Не знаю, почему так сложилось. Может быть потому, что «хранимки» чаще приходилось использовать для реализации какой-то логики или возвращении набора записей, а для получения одного значения — применял функции. Ну, так вот сложилось. Подразумеваю, что нелюбовь эта взаимная, что подтвердилось в последнем проекте, где хоть убей, но надо было с SSIS присваивать переменным возвращаемые значения процедуры. Изначально, пакет был не мой, а другого разработчика. Ничего плохого говорить не буду, все было сделано достаточно грамотно.

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Просмотры2.7K
Комментарии 1

Напильник и щепотка фантазии… или как слепить Enterprise из SQL Server Express Edition

Высокая производительностьSQLПроектирование и рефакторингMicrosoft SQL ServerАдминистрирование баз данных
Проснись… ты всегда ощущал, что мир не в порядке. Странная мысль, но ее не отогнать – она как заноза в мозгу. Ты всю жизнь живешь в темнице ограничений и правил, навязанных всесильным Майкрософтом, и даже не осознаешь этого.

Нажмешь дизлайк и сказке конец – ты закроешь вкладку и продолжишь бесцельно бродить по рекомендациям Хабра и YouTube.

Захочешь продолжить и войдешь в страну чудес – я покажу тебе насколько глубока… невозможная… кроличья нора успешной разработки на SQL Server Express Edition.

Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Просмотры6.6K
Комментарии 14

Как мы разгоняли кластер для нагруженных баз Microsoft SQL и получали заветные 200 000 IOPS

Блог компании DataLineIT-инфраструктураВиртуализацияMicrosoft SQL ServerАдминистрирование баз данных

В прошлом году мы активно взялись за быстродействие больших тяжелых баз данных в нашем облаке. На первый взгляд казалось, что у нас только 2 варианта: недорогие СХД с медленными дисками или очень дорогие СХД – с быстрыми. 

Мы же хотели ускорить работу высоконагруженных баз данных Microsoft SQL и при этом предложить клиентам выгодную стоимость услуги. В результате тестов мы собрали решение "Кластер для нагруженных баз данных Microsoft SQL в облаке". Сегодня заглянем внутрь и добавим чуть больше технических вводных и конкретных цифр. 

Пост не претендует на deep dive и не раскрывает всех технических нюансов, а лишь демонстрирует результаты нашего тестирования. Я покажу, на каком железе, софте и конфигурации сети мы проводили тесты быстродействия БД, каким способом тестировали и какие результаты получили. 

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Просмотры7.6K
Комментарии 10

Зловредное «Недопустимое значение DataGridViewComboBoxCell» в vb.net и c#

.NETMicrosoft SQL ServerC#
Из песочницы
Привет всем, программирующим окошки под MS VS.

Проблема


1. Есть DataGridView, один из столбцов — DataGridViewComboBoxColumn;
2. Данные в грид закидываются через DataSource, как DataTable (не построчно, это важно);
3. Данные в ComboBoxColumn тоже биндятся, в источнике данных есть заполненный DataMember, построчно или нет — не важно, конкретная структура данных тоже не важна, ValueMember в ней Integer, Long или даже String.

При выборе чего-то из выпадающего списка dgv_DataError ловит ошибку: «Недопустимое значение DataGridViewComboBoxCell». И на заполнении — ее же.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Просмотры1.5K
Комментарии 0

Базы данных. Тенденции общемировые и в России

MySQLOraclePostgreSQLMicrosoft SQL ServerАдминистрирование баз данных
Из песочницы

Эта статья не является ответом на множество вопросов по базам данных (БД) и системам управлениям базами данных (СУБД). Я как автор выражаю своё собственное мнение о  трендах, стараясь опираться на беспристрастные показатели, статистики и т.д., но для примера приводя собственный опыт. Я не являюсь ангажированным представителем какой-либо компании и выражаю точку зрения опираясь на опыт более 25 лет работы с разными СУБД, в том числе, которую создавал своими руками. Не так много даже опытных программистов и архитекторов, которые знают все термины, технологии, какие подводные камни и куда идёт движение. Тема поистине огромная, поэтому в рамках одной статьи не раскрыть даже верхний уровень информации. Если кто-то не встретит свою любимую СУБД или её невероятный плюс, который стоит упомянуть, то прошу в комментариях указать и этим дополнить общую картину, что поможет другим разобраться и понять лучше предметную область. Поехали!

Open Source DBMS vs Commercial DBMS

 Для начала приведён график с сайта, db-engines.com, по моим ощущениям, неплохо отслеживающим тренды БД. Именно этот график добавил желания написать статью о текущем положении дел.

Читать далее (в конце краткие итоги)
Всего голосов 69: ↑65 и ↓4+61
Просмотры31K
Комментарии 106

Вклад авторов