Рубрика «sql» - 81

Часть 1 — здесь.

В этой части будут затронуты непростые вопросы использования SQLite через работу с его программным интерфейсом (API).

Читать полностью »

Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.

Небольшая вводная.

Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка и ответов поскольку информации очень много и так хоть немного проще ее структурировать.

Читать полностью »

Недостаточно писать код хорошо читаемым: он также должен быстро выполняться.

Существует три базовых правила для написания такого T-SQL кода, который будет работать хорошо. Они кумулятивные – выполнение всех этих правил окажет положительное влияние на код. Пропуск или изменение любого из них – скорее всего приведет к отрицательному влиянию на производительность вашего кода.

  • Пишите, исходя из структуры хранения данных: если вы храните данные типа datetime, используйте именно datetime, а не varchar или что-нибудь еще.
  • Пишите, исходя из наличия индексов: если на таблице построены индексы, и они должны там быть, пишите код так, чтобы он мог использовать все преимущества, предоставляемые этими индексами. Убедитесь, что кластерный индекс, а для каждой таблицы он может быть только один, используется наиболее эффективным образом.
  • Пишите так, чтобы помочь оптимизатору запросов: оптимизатор запросов – восхитительная часть СУБД. К сожалению, вы можете сильно затруднить ему работу, написав запрос, который ему «тяжело» будет разбирать, например, содержащий вложенные представления – когда одно представление получает данные из другого, а то из третьего – и так далее. Потратьте свое время для того, чтобы понять как работает оптимизатор и писать запросы таким образом, чтобы он мог вам помочь, а не навредить.

Существует несколько типичных ошибок, которые люди допускают в своем коде на T-SQL – не совершайте их.
Читать полностью »

В сложных комплексных системах часто встаёт вопрос интеграции данных из разных источников.
Такие системы получили название интегрированных, федеративных или мультибаз.

В СУБД Caché такая интеграция осуществляется с помощью специального шлюза (Caché SQL Gateway), который использует в своей основе ODBC/JDBC соединения к внешним источникам данных. Причём под источником в данном случае можно понимать не только СУБД, так как есть JDBC/ODBC драйвера для MS Excel, DBF, текстовых файлов, графических файлов, WMI и т.д.

Коротко, как задействовать Caché SQL Gateway:
Читать полностью »

В прошлом году мы уже подробно рассказывали о флагмане линейки HP ProLiant — 8-сокетном DL980, который впервые реализует функции бизнес-критичных систем для серверов стандартной архитектуры. Одна из основных сфер применения этого сервера – обслуживание больших баз данных Oracle Microsoft SQL Server. В нынешнем году на базе этого сервера было разработано новое решение, позволяющее резко поднять производительность баз данных за счет использования флэш-памяти.

VMA – умная флэш память для базы данных
Читать полностью »

Возможно это стресс от моего текущего проекта, и то, что я здесь написал всего лишь крик моей души. Но, увы наболело.
Просто я заметил что некоторые разработчики (на мой взгляд, их очень большое количество) любят злоупотреблять SQL-сервером.
Возможно это из-за того что написать сложный sql-запрос все-таки проще чем грамотно спроектировать систему, которая будет организовывать гармоничное взаимодействие между объектами, и будет это делать быстро.
Читать полностью »

Caché Monitor

Альтернативные SQL менеджеры для СУБД Caché
Если при разработке или использовании вашего приложения на Caché вам часто приходится выполнять SQL-запросы, а функциональности SQL-менеджера из Портала Управления Caché или SQL-оболочки из терминала Caché вам недостаточно, то советую обратить внимание на приложение Caché Monitor.

Альтернативный SQL-менеджер разработал Андреас Шнайдер — разработчик из Германии.
Это кроссплатформенное Java-приложение кроме выполнения SQL-запросов предоставляет следующие возможности:
Читать полностью »

Доброго времени суток уважаемые Хабрецы!
Здесь я расскажу вам об использовании DBIx::Class, с помощью которого вы сможете реализовать Object Relation Mapping (ORM) на языке Perl. опросы о том, полезен или бесполезен ORM как таковой и другие
риторические размышления в стиле «жили же раньше люди как-то без компьютеров, и зачем они нужны сейчас?!», я обошел стороной. Обо всем об этом прошу в кОменты.
А теперь собственно об использовании DBIx::Class.
Читать полностью »

Если бы мне пришлось писать книгу о том, как создавать немасштабируемые приложения Oracle, первая и единственная ее глава называлась бы «Не используйте связываемые переменные».
Том Кайт, вице-президент Oracle

Недавно на Хабре появилась статья от AlexanderPHP «SQL injection для начинающих. Часть 1». По ее содержимому и комментарием к ней может создаться впечатление, что у многих разработчиков нет понятия, что такое связываемые переменные, зачем ими следует пользоваться и какие преимущества они дают. Попытаюсь в данной статье пролить небольшой свет на данные вопросы.
Читать полностью »

Как можно было заметить из моей предыдущей статьи со сравнением библиотек LINQ для PHP, библиотек много, а качества мало: ленивые вычисления не реализованы ни в одной библиотеке, тесты есть в половине случаев, типы коллбэков ограничены, а иногда и вовсе незнамо что выдаётся за LINQ. Поэтому я написал свою библиотеку. Встречайте:

YaLinqo — Yet Another LINQ to Objects for PHP

Возможности:

  • Самый полный порт .NET LINQ на PHP, со многими дополнительными методами. Некоторые методы отсутствуют, но работа ведётся. Всего реализовано более 70 методов.
  • Ленивые вычисления, текст исключений и многое другое, как в оригинальном LINQ.
  • Детальная документация PHPDoc к каждому методу. Текст статей адаптирован из MSDN.
  • 100% покрытие юнит-тестами.
  • Коллбэки можно задавать замыканиями, «указателями на функцию» в виде строк и массивов, строковыми «лямбдами» с поддержкой нескольких синтаксисов.
  • Ключам уделяется столько же внимания, сколько значениям: преобразования можно применять и к тем, и к другим; большинство коллбэков принимает на вход и то, и другое; ключи по возможности не теряются при преобразованиях.
  • Минимальное изобретение велосипедов: для итерации используются Iterator, IteratorAggregate и др. (и их можно использовать наравне с Enumerable); исключения по возможности используются родные похапэшные и т.п.

Пример кода:

// Отфильтровать продукты с ненулевым количеством, поместить в соответствующие категории,
// отсортированные по имени. Продукты отсортировать сначала по убыванию количества, потом по имени.

from($categories)
    ->orderBy('$v["name"]')
    ->groupJoin(
        from($products)
            ->where('$v["quantity"] > 0')
            ->orderByDescending('$v["quantity"]')
            ->thenBy('$v["name"]'),
        '$v["id"]', '$v["catId"]', 'array("name" => $v["name"], "products" => $e)'
    );

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js