Делая отладку производительности небольшого проекта, но с достаточно большой базой, столкнулся с неприятным спецэффектом.
Django при выборках с условиями по внешним ключам, связанным с проверкой на NULL, генерирует запросы, содержащие JOIN по каждому такому ключу. Читать полностью »
Рубрика «sql» - 85
Книга готовится к печати: С.Тарасов, «Дефрагментация мозга. Софтостроение изнутри»
2013-01-14 в 10:05, admin, рубрики: sql, Блог компании Издательский дом «Питер», книга, Читальный зал, метки: книгаПо просьбе хаброжителей публикуем еще одну короткую главу и оглавление из книги СергеяТарасова «Дефрагментация мозга. Софтостроение изнутри»
Code revision или коза кричала
Ревизия программного кода всякий раз напоминает мне эпизод из фильма Г. Данелия «Осенний марафон». Главный герой, преподаватель университета Андрей Бузыкин сидит у своей бывшей сокурсницы Варвары, помогая ей с переводом художественного произведения. Время перевалило за полночь, происходит примерно такой диалог.
– Скажи, Бузыкин, может я бездарная?
– Не-е-е…
– Но ты же всё повычеркивал!
– Не всё… Но вот это, например, я не мог оставить: «Коза кричала нечеловеческим голосом»
Оптимизация выражения LIKE при использовании Sqlite в iOS приложении
2013-01-13 в 16:07, admin, рубрики: ios development, ios programming, sql, sqlite, sqlite optimization, sqlite3, разработка под iOS, метки: ios development, ios programming, sqlite, sqlite optimization, sqlite3 Недавно я столкнулся с задачей оптимизации запроса к Sqlite в моем iOS приложении.
Задача заключалась в следующем. Имелся список документов (PDF файлов), словарь (список слов), ну и связь документов и слов из словаря (вхождение слов в документ). Необходимо было реализовать поиск и вывести список документов в которых есть введенное слово.
Структура базы имела следующий вид:
Читать полностью »
ORM или объектно-реляционный проектор
2013-01-10 в 9:07, admin, рубрики: nosql, sql, Блог компании Издательский дом «Питер», книга, софтостроение, метки: книга, софтостроениеСегодня мы предлагаем вашему вниманию отрывок из книги Сергея Тарасова «Дефрагментация мозга. Софтостроение изнутри», которая готовится к выходу в нашем издательстве.
Сокрытие базы данных или как скрестить ёжа с ужом
Упомянув один из крупнейших столпов современного софтостроения — мир ООП, нельзя обойти вниманием и другой — мир реляционных баз данных. Я намеренно вставил прилагательное «реляционные» применительно ко всем основным СУБД, хотя ещё в 1970-х годах такое обобщение было бы неправомерным.
Тем не менее, именно реляционным СУБД удалось в 1980-х годах освободить программистов от знания ненужных деталей организации физического хранения данных, отгородившись от них структурами логического уровня и стандартизованным языком SQL для доступа к информации. Также оказалось, что большинство форматов данных, которыми оперируют программы, хорошо ложатся на модель двумерных таблиц и связей между ними. Эти два фактора предопределили успех реляционных СУБД, а в качестве поощрительной премии сообщество получило строгую математическую теорию в основании технологии.
Спускаемся в 1С 8.2 на уровень Базы Данных (Часть1)
2013-01-10 в 7:42, admin, рубрики: 1С, ERP-системы, MS SQL, sql, оптимизация, Программирование, метки: 1с, MS SQL, оптимизацияВ нашей компании есть собственная разработка на 1С 8.2 платформе. Однажды мы пришли к понимаю что наша система работает не очень быстро. Оставалось понять в каком направлении двигаться, что бы оптимизировать работу системы. После долгох исследований и экспериментов, мы решили в серьез взяться за перенос некоторых операций на плечи СУБД, а именно на плечи MS SQL.
Cтруктура базы данных 1С на уровне СУБД выглядит не совсем внятно.
Постараюсь описать что же из себя представляет эта структура. Описание будет не полное. Постараюсь описать лишь самое интересное и важное, из того что нужно понимать спускаясь на уровень СУБД.
Читать полностью »
Data Mining: Первичная обработка данных при помощи СУБД. Часть 1
2013-01-09 в 13:02, admin, рубрики: big data, data mining, kaggle, sql, titanik, анализ данных, метки: data mining, kaggle, sql, titanik, анализ данныхО чем статья
В задачах исследования больших объемов данных есть множество тонкостей и подводных камней. Особенно для тех, кто только начинает исследовать скрытые зависимости и внутренние связи внутри массивов информации. Если человек делает это самостоятельно, то дополнительной трудностью становится выбор примеров, на которых можно учиться и поиск сообщества для обмена мнениями и оценки своих успехов. Пример не должен быть слишком сложным, но в тоже время должен покрывать основные проблемы. озникающие при решении задач приближенных к реальности, так чтобы задача не воспринималась примерно вот так:

С этой точки зрения, очень интересным будет ресурс Kaggle[1], который превращает исследование данных в спорт. Там проводят соревнования по анализу данных. Некоторые соревнования — с обучающими материалами и предназначены для начинающих. Вот именно обучению анализу данных, на примере решения одной из обучающих задач, и будет посвящён цикл статей. Первая статья будет о подготовке данных и использованию СУБД для этой цели. Собственно, о том, как и с чего начать. Предполагается что читатель понимает SQL.
Читать полностью »
Спорт. Турнирные таблицы с личными показателями при равентсве очков
2013-01-06 в 13:34, admin, рубрики: php, python, sql, Веб-разработка, ооп, спорт, метки: PHP, python, sql, ооп, спортВкратце суть примерно такова: есть глобальные показатели (общие очки, общая разница мячей и т.д), но при равенстве глобальных показателей у группы команд используется подсчет показателей между этими командами. То есть понятно, что должен быть первый запрос, а заним второй запрос с горстью костылей. Чистый sql не пройдет, судя по всему.
Оптимизация производительности SQL Server с использованием индексов
2013-01-04 в 12:09, admin, рубрики: MS Sql Server, select, sql, запросы к БД, индекс, оптимизация, производительность, метки: MS Sql Server, select, sql, запросы к БД, индекс, оптимизация, производительностьВведение
Как известно, индексы повышают производительность аналогично оглавлению или предметному указателю в кнгие. Прочитав несколько статей в интернете и пару глав из книжек, хотелось бы узнать, насколько индексы помогают увеличить скорость выборки данных из SQL Server. Рассмотрим на примере. Читать полностью »
Нетрадиционное использование Microsoft Reporting Services
2013-01-03 в 8:25, admin, рубрики: javascript, Reporting Services 2008 R2, sql, SSRS, метки: javascript, Reporting Services 2008 R2, sql, SSRSИсторически сложилось так, что MS SSRS выбирался руководством компаний в которых я работал/ю как средство построения корпоративной отчетности. Конечно-же, чаще всего он не выбирался, а доставался в комплекте с MS SQL Server'ом. А так как он уже есть, то его нужно использовать и чаще всего не по назначению, а как придется. Поэтому и приходилось использовать Reporting Services для не совсем тривиальных задач. Под катом несколько вариантов такого применения.Читать полностью »
SQL — гибок или почему я боюсь NoSQL
2012-12-29 в 13:30, admin, рубрики: mongodb, nosql, sql, прототип, разработкаОт переводчика: Недавно презентовал на Хабре один проект, в котором использовал MySQL. Многие пользователи удивлялись, почему я не использую NoSQL для моих задач, и настоятельно порекомендовали переходить на нереляционные базы данных. Сегодня я наткнулся на эту статью, которая отлично объясняет, почему я “боюсь” NoSQL.
Должен признаться, что долго думал над тем стоит ли писать эссе о базах данных, потому что трогать эту тему всё равно, что открыть банку с червяками (в оригинале – “opening a can of worms” – английская идиома; можно интерпретировать как “Холивар” – прим. перев.). Во-первых, многое было написано до меня, а во-вторых, тема слишком сложна, что бы делать какие-либо выводы из личного опыта.
Последние две недели, однако, заставили меня понять, что я больше никогда не начну проект на основе MongoDB или любой другой нереляционной базы данных (НРДБ) в качестве первичного хранилища данных. Обратите внимание – я сказал “начну”. Я не говорю, что больше никогда не буду использовать MongoDB как таковую.
Читать полностью »
