
128K+
Охват за 30 дней
SQL *
Формальный непроцедурный язык программирования
93,03
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Университет Kimball: 10 основных правил многомерного моделирования
7 мин
18KПеревод

Марги Росс (Margy Ross) — Президент Kimball Group.
Соблюдайте следующие правила чтобы гарантировать гранулированность данных, а так же гибкость и доступность информационного ресурса в будущем. Нарушайте правила, и бросайте смятённых пользователей на глухие неприступные стены вашего хранилища данных.
Студенты, посещающие лекции Kimball Group по многомерному моделированию, попросили у меня список «заповедей Kimball» для многомерного моделирования. Воздержимся от использования религиозной терминологии. Поэтому, нижеследующее, добытое методом проб и ошибок, назовём не слишком строгими рекомендациями и правилами «как-ничего-не-сломать».
+15
Parameter sniffing в SQL Server 2005/2008 (на примере Project Server 2007)
6 мин
4.5KСтолкнулся с интересной ошибкой на загруженном Project Server 2007. Причем проявляется она при активном использовании (читай, в продакте). При разработке, отладке и тестировании данная ошибка не проявилась ни разу. Еще хуже то, что при возникновении ошибки SQL «переклинивает», и без постороннего вмешательства ошибка не исчезает. Ну и под конец — из логов крайне сложно понять причину ее возникновения. Гугл, к сожалению, не помог, что, собственно, и побудило написать об этой проблеме.
Если у вас на странице сведений о проекте «Возникла неожиданная ошибка», а в логе ошибка 7888 (SQL Timeout) — добро пожаловать под кат. Если вы интересуетесь внутренним «эго» SQL Server — тоже стоит почитать.
Если у вас на странице сведений о проекте «Возникла неожиданная ошибка», а в логе ошибка 7888 (SQL Timeout) — добро пожаловать под кат. Если вы интересуетесь внутренним «эго» SQL Server — тоже стоит почитать.
+9
SP4 для MSSQL 2005 доступен посредством Windows Update
1 мин
11K
В свете всех последних новостей, праздников, а также наличия более актуального MS SQL Server 2008, про «малыша» 2005 многие забыли.Днями Microsoft начала распространение Service Pack 4 для MS SQL Server 2005 посредством Windows Update.
Пакет можно было скачать ещё в середине декабря 2010, однако в свете 2008-й версии, выход 4-го пакета обновления для 2005-й версии громко не афишировался.
Пакет обновления 4 (SP4) для SQL Server 2005 можно также загрузить со страницы загрузки пакета обновления 4 (SP4) для SQL Server 2005. Для каждой платформы, поддерживаемой SQL Server 2005, доступен отдельный загружаемый пакет установки:
- Для владельцев корпоративных версий, это можно сделать на соответствующей странице Download Center.
- Для владельцев Express или Express Edition with Advanced Services, следует скачивать обновление с отдельной страницы Download Center.
+5
Колоночные СУБД — принцип действия, преимущества и область применения
5 мин
153KСередина 2000-х годов ознаменовалась бурным ростом числа колоночных СУБД. Vertica, ParAccel, Kognito, Infobright, SAND и другие пополнили клуб колоночных СУБД и разбавили гордое одиночество Sybase IQ, основавшей его в 90х годах. В этой статье я расскажу о причинах популярности идеи по-колоночного хранения данных, принцип действия и область использования колоночных СУБД.
Начнем с того, что популярные в наше время реляционные СУБД — Oracle, SQL Server, MySQL, DB2, Postgre и др. базируются на архитектуре, отсчитывающей свою историю еще c 1970-х годов, когда радиоприемники были транзисторными, бакенбарды длинными, брюки расклешенными, а в мире СУБД преобладали иерархические и сетевые системы управления данными. Главная задача баз данных тогда заключалась в том, чтобы поддержать начавшийся в 1960-х годах массовый переход от бумажного учета хозяйственной деятельности к компьютерному. Огромное количество информации из бумажных документов переносилось в БД учетных систем, которые должны были надежно хранить все входящие сведения и, при необходимости, быстро находить их. Такие требования обусловили архитектурные особенности реляционных СУБД, оставшиеся до настоящего времени практически неизменными: построчное хранение данных, индексирование записей и журналирование операций.
Начнем с того, что популярные в наше время реляционные СУБД — Oracle, SQL Server, MySQL, DB2, Postgre и др. базируются на архитектуре, отсчитывающей свою историю еще c 1970-х годов, когда радиоприемники были транзисторными, бакенбарды длинными, брюки расклешенными, а в мире СУБД преобладали иерархические и сетевые системы управления данными. Главная задача баз данных тогда заключалась в том, чтобы поддержать начавшийся в 1960-х годах массовый переход от бумажного учета хозяйственной деятельности к компьютерному. Огромное количество информации из бумажных документов переносилось в БД учетных систем, которые должны были надежно хранить все входящие сведения и, при необходимости, быстро находить их. Такие требования обусловили архитектурные особенности реляционных СУБД, оставшиеся до настоящего времени практически неизменными: построчное хранение данных, индексирование записей и журналирование операций.
+51
Как подружить 1С 7.7 и Postgres
2 мин
12KДля такого популярного программного продукта, как 1С: Предприятие, разработчикам приходится обеспечивать кроссплатформенность и совместимость с большим числом приложений. В частности, с каждой новой версией добавляется поддержка всё новых СУБД.
Многие предприятия (преимущественно малые и средние) по-прежнему не торопятся переходить от версии 7.7 к 8.х. А в этом случае единственная предусмотренная разработчиками совместимая СУБД – Microsoft SQL. Вариант весьма затратный для небольшой компании: помимо лицензий на рабочие станции и MS SQL Server, требуется приобрести еще и MS Server.
Альтернативным решением может стать технология SELTA@Etersoft, разработанная питерской компанией Etersoft. SELTA используется в связке со свободной СУБД Postgre SQL и позволяет 1С 7.7 работать с SQL-базами. Продукт является коммерческим и позиционируется разработчиком как доступная (стоимость решения составляет от 15000 р.) альтернатива MS SQL Server.
Многие предприятия (преимущественно малые и средние) по-прежнему не торопятся переходить от версии 7.7 к 8.х. А в этом случае единственная предусмотренная разработчиками совместимая СУБД – Microsoft SQL. Вариант весьма затратный для небольшой компании: помимо лицензий на рабочие станции и MS SQL Server, требуется приобрести еще и MS Server.
Альтернативным решением может стать технология SELTA@Etersoft, разработанная питерской компанией Etersoft. SELTA используется в связке со свободной СУБД Postgre SQL и позволяет 1С 7.7 работать с SQL-базами. Продукт является коммерческим и позиционируется разработчиком как доступная (стоимость решения составляет от 15000 р.) альтернатива MS SQL Server.
+17
Определяем логин пользователя по его SID средствами MS SQL
2 мин
11KЗдравствуйте. Будучи администратором БД (Microsoft Dynamics NAV), возникла задача выдавать/проверять наличие роли SQL db_datareader для некоторых работников. Но в таблице список пользователей хранился в виде SID windows: S-1-5-21-3879… и записи постоянно добавлялись. Другими словами необходимо было конвертировать из S-1-5-21-38… → aapetrov.
Серверов было около 70-ти и хотелось все сделать стандартными средствами (не использовать, например psgetsid.exe).
Как и положено начал с гугла — ничего полезного не нашел. Пришлось обратиться за помощью на многоуважаемый форум. Было предложено множество вариантов, за что огромное спасибо добрым людям, но увы, решение так и не было найдено.
«Если даже ребята с sql.ru не смогли подсказать — подумал я — значит все, это конец».
Серверов было около 70-ти и хотелось все сделать стандартными средствами (не использовать, например psgetsid.exe).
Как и положено начал с гугла — ничего полезного не нашел. Пришлось обратиться за помощью на многоуважаемый форум. Было предложено множество вариантов, за что огромное спасибо добрым людям, но увы, решение так и не было найдено.
«Если даже ребята с sql.ru не смогли подсказать — подумал я — значит все, это конец».
+12
Отслеживание изменений в SQL Server 2008
5 мин
64KЯ думаю, каждый разработчик СУБД рано или поздно сталкивается с задачей отслеживания обращений к БД и событий сервера в целом. И прежде чем выбрать инструмент (или написать его самому), конечно, стоит обратить внимание на решения, которые предлагают сами разработчики СУБД. Хочу поделиться нашим опытом в Brights решения этой задачи для SQL Server 2008.
+5
Microsoft готовит «беcсерверный» вариант SQL Server
1 мин
2.4KMicrosoft запустила публичный опрос, в котором предлагает всем желающим поучаствовать в поиске названия для новой редакции (или нового режима) SQL Server.
Новый режим SQL Server носит определение “server-less” (беcсерверный). Из описания к опросу можно получить следующие данные:
Новый режим SQL Server носит определение “server-less” (беcсерверный). Из описания к опросу можно получить следующие данные:
- новый режим позволит использовать полнофункциональный SQL Server (Express?) без необходимости его установки, конфигурации и сопровождения;
- все что вам понадобится для работы с сервером – это строка соединения;
- новый режим будет работать только с локальными соединениями, а потому предназначен в первую очередь для целей разработки приложений, отладки и тестирования;
- однако, новый режим смогут использовать и сторонние приложения, в которые можно будет внедрить соответственно настроенный SQL Server;
- новый режим будет работать в качестве пользовательского процесса, а не сервиса;
- SQL Server в новом режиме будет “подниматься” при соединении и работать при наличии соединения и отключаться (shutdown), когда последнее соединение будет закрыто.
+19
MS SQL 2005, Parameter Sniffing, тормозящий Stored Procedure
1 мин
7.1KНедавно столкнулся с проблемой: скрипт запущенный в Query Analyzer отрабатывал за секунду, а он же в виде хранимой процедуры аж 50 секунд. Оказалось всему виной Parameter Sniffing который призван… оптимизировать запрос. :)
+1
Есть ли альтернатива гигантам рынка СУБД?
3 мин
16KНе редко можно услышать мнение, что существуют такие категории ПО, в которых свободный софт никогда не сможет быть альтернативой проприетарным продуктам. Чаще всего в пример приводятся какие-то сложные, узкоспециализированные, профессиональные программы. Я не знаю, насколько справедливо такое мнение, но некоторые из вышеупомянутых категорий, похоже, можно вычёркивать.
В одном из докладов недавно проходившего CNews Forum я увидел «СУБД для предприятий» в списке ПО, которое навсегда останется проприетарным. Я не могу согласиться с таким тезисом, поэтому написал небольшую статью.
В одном из докладов недавно проходившего CNews Forum я увидел «СУБД для предприятий» в списке ПО, которое навсегда останется проприетарным. Я не могу согласиться с таким тезисом, поэтому написал небольшую статью.
+46
Доступен для загрузки SQL Server «Denali» CTP и еще ряд анонсов с конференции PASS 2010
3 мин
1.1K
Вчера в ходе конференции PASS Summit 2010 была анонсирована и стала доступна для загрузки предварительная версия следующего поколения SQL Server под кодовым именем Denali.
Кроме анонса новой версии SQL Server был сделан ряд других анонсов:
- анонсирована новая редакция SQL Server 2008 R2 Parallel Data Warehouse предназначенная для высоконагруженных параллельных вычислений и обработки информации;
- анонсировано партнерство с компанией HP по созданию платформы HP Enterprise Data Warehouse Appliance на базе новой редакции SQL Server 2008 R2 Parallel Data Warehouse;
- анонсирована программа сертификации Microsoft Certified Master (MCM) для SQL Server;
- анонсирован новый облачный сервис Atlanta, который позволяет централизованно отслеживать экземпляры SQL Server и определять проблемы с конфигурацией, производительностью, безопасностью, а так же управлять серверами через облако.
+6
Автоинкрементные первичные ключи (суррогатные ключи) = зло?
7 мин
28KВ этой статье я приведу взгляд (отрицательный по большей части) Джоша Беркуса, CEO компании PostgreSQL Experts Inc. на использование суррогатных ключей для таблиц базы данных, тех самых INT NOT NULL AUTO_INCREMENT PRIMARY KEY, к которым мы привыкли. Фактически, это будет вольный, сильно сокращенный перевод его статьи на ittoolbox.
За статьей последует разбор моих собственных ошибок по этой теме, допущенных в одном старом проекте. Я был молод и глуп, но это меня не извиняет.
Честно говоря, прочитав эту статью и не заметив, кто автор, я подумал, что он все же преувеличивает и вообще, я без него как-нибудь разберусь, где и какие ключи мне использовать. Потом я еще немного подумал и полез за дампом структуры базы моего старого проекта. Было интересно.
Если вы опытный DBA, наверное, вам стоит пройти мимо, чтобы не расстраиваться.
Но обо всем по порядку. Сначала ОЧЕНЬ сокращенный перевод:
За статьей последует разбор моих собственных ошибок по этой теме, допущенных в одном старом проекте. Я был молод и глуп, но это меня не извиняет.
Честно говоря, прочитав эту статью и не заметив, кто автор, я подумал, что он все же преувеличивает и вообще, я без него как-нибудь разберусь, где и какие ключи мне использовать. Потом я еще немного подумал и полез за дампом структуры базы моего старого проекта. Было интересно.
Если вы опытный DBA, наверное, вам стоит пройти мимо, чтобы не расстраиваться.
Но обо всем по порядку. Сначала ОЧЕНЬ сокращенный перевод:
+56
Ближайшие события
Секционирование. Автоматическое добавление секций
15 мин
35KВ версии 11g в Oracle появилась несколько новых замечательных схем секционирования — например, удобная функциональность интервального секционирования — автоматического создания секций по мере выхода range из заданных границ.
В версиях до 11g необходимо периодически вручную либо заранее добавлять секции, либо разбивать секцию по умолчанию. То есть постоянно необходимо отслеживать состояние таких таблиц. В данной статье я поделюсь своими решениями для автоматизации таких задач секционирования.
Сначала приведу пример для 11g:
Этот скрипт создает секцию p1 для записей, значение столбца res_id которых находится в диапазоне 1-100. Когда вставляются записи со значением столбца res_id меньшим 101, они помещаются в секцию p1, а когда в новой записи значение этого столбца равно или больше 101, сервер Oracle Database 11g создает новую секцию, имя которой генерируется системой. Подробнее с этим примером и прочими новыми схемами секционирования вы можете познакомиться в переводе статьи Арупа Нанды в русском издании Oracle Magazine.
Рассмотренные ниже решения можно применить и в других СУБД, не поддерживающих автоматическое добавление секций
В версиях до 11g необходимо периодически вручную либо заранее добавлять секции, либо разбивать секцию по умолчанию. То есть постоянно необходимо отслеживать состояние таких таблиц. В данной статье я поделюсь своими решениями для автоматизации таких задач секционирования.
Сначала приведу пример для 11g:
- create table res (
- res_id number not null,
- res_date date,
- hotel_id number(3),
- guest_id number
- )
- partition by range (res_id)
- interval (100) store in (users)
- (
- partition p1 values less than (101)
- );
Этот скрипт создает секцию p1 для записей, значение столбца res_id которых находится в диапазоне 1-100. Когда вставляются записи со значением столбца res_id меньшим 101, они помещаются в секцию p1, а когда в новой записи значение этого столбца равно или больше 101, сервер Oracle Database 11g создает новую секцию, имя которой генерируется системой. Подробнее с этим примером и прочими новыми схемами секционирования вы можете познакомиться в переводе статьи Арупа Нанды в русском издании Oracle Magazine.
Рассмотренные ниже решения можно применить и в других СУБД, не поддерживающих автоматическое добавление секций
+23
Выпущен SQL Server 2008 Service Pack 2 и еще некоторые обновления
1 мин
1.8K
Выпущен второй сервисный пакет исправлений для SQL Server 2008.
Полный список нововведений можно найти тут, ниже некоторые из них:
- представлена поддержка до 15000 разделов для таблиц и индексов. Ранее существовал предел до 1000 разделов. Полное описание нововведения можно найти в этом отдельном документе (.docx);
- интеграция Reporting Services с SharePoint 2010;
- SQL Server 2008 R2 Application and Multi-Server Management теперь совместим и может работать с SQL Server 2008;
- новый административный инструмент SQL Server Utility;
- поддержка приложениями Data-tier Application (DAC), которая была ранее представлена для SQL Server 2008 R2.
Кроме того, были обновлены следующие инструменты:
+4
Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL
6 мин
219KВ одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
+92
Библиотека dklab_rowlog для версионирования строк в таблицах PostgreSQL
4 мин
3.2K
В продолжение сегодняшнего топика Версионность и история данных — поделюсь простеньким инструментом, который мы используем.Dklab_rowlog — это библиотека из нескольких хранимых процедур PostgreSQL, позволяющая добавить версионирование записей к любой таблице в БД. Иными словами, что бы ни происходило с таблицей, как бы данные там ни менялись (добавлялись/удалялись), это будет отражено в специальной табличке-логе.
Преимущества:
- Версионирование добавляется к любой таблице за 1 минуту с использованием 1 SQL-команды.
- Можно указать, какие колонки надо сохранять, а какие — нет (что экономит место). При этом запись в лог добавится только в случае, если хотя бы одна из указанных колонок изменилась.
- Можно указать колонку, которая будет трактоваться как «ID автора изменения».
- Можно задать колонки, которые будут логироваться в любом случае, независимо от того, менялись они или нет.
Примеры использования
Предположим, нам нужно логировать изменения вот в такой табличке:
+49
Версионность и история данных
5 мин
170KПри разработке баз данных зачастую требуется обеспечить поддержку версионности и хранения истории объектов. Например, у работника может изменяться должность, у должности в свою очередь может меняться оклад — в многомерном моделировании это называется Slowly changing dimensions(далее SCD) — редко изменяющиеся измерения, то есть измерения, не ключевые атрибуты которых имеют тенденцию со временем изменяться. Всего существует 6 основных типов(методов) SCD, которые определяют как история изменений может быть отражена в модели.
+59
О, эти планы запросов
2 мин
80K
История стара как мир. Две таблицы:
- Cities – 100 уникальных городов.
- People – 10 млн. людей. У некоторых людей город может быть не указан.
Распределение людей по городам – равномерное.
Индексы на поля Cites.Id, Cites.Name, People .CityId – в наличии.
Нужно выбрать первых 100 записей People, отсортированных по Cites.
+50
Анонсирован SQL Server Compact Edition 4
1 мин
13KСкотт Гатри в своем блоге анонсировал новую версию компактной базы данных SQL Server Compact Edition 4. SQL Server Compact Edition 4 – это бесплатный, встраиваемый движок базы данных, который был спроектирован в том числе для работы в среде веб-приложений ASP.NET.
SQL Server Compact Edition 4 обладает следующими особенностями:
Ждем!
SQL Server Compact Edition 4 обладает следующими особенностями:
- работает с существующим API, вы можете использовать ADO.NET, Entity Framework, NHibernate для работы с базами данным SQL CE 4;
- установка не требуется, вам не нужно ничего устанавливать, стоит только скопировать файл базы данных в соответствующую папку и ваше приложение сможет работать с ней. Кроме того, вам не нужны права администратора для работы с базами данных;
- для работы с базами данным SQL CE4 поддерживаются сценарии shared-хостинга. Хостерам и разработчикам не требуется ничего предпринимать, все просто работает;
- полноценная поддержка разработки и дизайна баз данных в Visual Studio 2010 и Visual Web Developer 2010 Express;
- поддержка многопоточных сценариев веб-приложений и применение в ASP.NET без лицензионных ограничений;
- простая миграция на полноценный SQL Server или SQL Azure, которая потребует от разработчика просто смены строки подключения в приложении;
Ждем!
+21