Skip to content

Анализ индексов, использование статистик и гистограмм при оптимизации запросов

binary-tree-icon

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

Чтобы соответствовать современным требованиям, компаниям приходится идти на значительные финансовые затраты для достижения необходимого уровня масштабирования, пытаясь получить выигрыш за счет более эффективного решения своих задач. 

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

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

Оптимизация и тонкая настройка производительности систем БД  требует расширенных знаний о хранимых данных. Прежде всего, качество проектирования архитектуры данных без учета этих знаний может сильно повлиять на производительность всей системы, на некорректное использование индексов встроенными оптимизаторами запросов, на возможности и стоимость масштабирования. Это касается не только широко распространенных "классических" реляционных СУБД, но и новейших классов нереляционных БД. Например, наличие достаточного пространства в оперативной памяти сервера для помещения наиболее часто используемых блоков индексов может резко улучшить производительность. И напротив, использование в качестве ключа партиционирования полей с неподходящим распределением может отрицательно повлиять на эффективность функционирования системы по мере добавления и модификации информации.

Физическая организация данных также сильно отличается для различных аппаратно-программных сред, а ее оптимальность меняется по ходу эксплуатации системы и зависит от актуальных внутренних характеристик и метрик хранимых данных. 

Никто, кроме "владельца" данных не может лучше знать все тонкости устройства, взаимодействия, использования и распределения значений информации. Поэтому, оптимизация и тонкая настройка запросов на сервере - это скорее, искусство, требующее колоссальных знаний, времени и опыта.

Как же быть, если результат нужен быстро, а достигнутый уровень "шедевра" может стать недостаточным на следующий день работы системы?

Picture1

В каждой СУБД, какого бы типа она не была, обязательно имеются средства, автоматически ищущие и находящие практические решения на каждый момент выполнения запроса. Чаще всего, это внутренний оптимайзер, достаточно "интеллектуальный" для решения обычных рутинных задач. Он формирует планы выполнения каждого запроса или кода на SQL. Ведущие СУБД применяют оптимайзеры, которые разбирают код SQL, проводят его возможные логические преобразования, ищут решения на физическом уровне (и при этом опираются на имеющиеся статистики), оценивают стоимость каждого варианта и выбирают окончательный план по общей стоимости выполнения.

Чтобы повлиять на выбор плана оптимайзером, нужно очень много знаний: теоретические о технологиях, о БД, физических носителях, аппаратных средствах, свойствах данных, распределении зачений, частотах использования. Оптимайзер находит план исходя из внутренних данных. И надо понимать, почему, на основании какой части этой информации было принято конкретное решение.

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

Как с помощью решений компании Embarcadero можно упростить и сделать более эффективным процесс управления структурами индексов, сбора и поддержки статистик в акутальном состоянии, выяснения почему оптимайзер использует определенный план, а в случае необходимости, быстро найти альтернативные варианты оптимизации запроса на конкретной БД - рассказано на вебинаре "Анализ индексов, использование статистик и гистограмм при оптимизации запросов".  Большую часть вебинара составляет демонстрация решения этих задач в Embarcadero DBArtisan и DB Optimizer. На базе использования подробных статистик и метрик с помощью этих инструментов можно быстро найти оптимальный план, оптимизировать структуру и применение индексов в любой базе данных на платформах Oracle, MS SQL, Sybase и DB2.

 

Управление схемами БД и правами доступа к данным.

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

aladdin-rd0602

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

 

На этапе проектирования должны быть заложены те необходимые решения, которые в дальнейшем позволят выполнять контрольные функции как сотрудникам-специалистам по безопасности данных, так и администраторам БД (DBA).

Но как бы хорош не был изначальный проект, не избежать многочисленных изменений, вносимых в схемы баз данных по мере эксплуатации. Это происходит не только потому, что требуется изменение информационной архитектуры для поддержки новых приложений или бизнес-функций, но и вследствие изменений в законодательстве, нормативных документах или появления дополнительных требований для интеграции бизнеса с партнерами.

Задача контроля и обеспечения безопасности доступа к данным - одна из важнейших и наиболее отвественных для администраторов БД. Бывают случаи, когда в результате мелкого просчета в настройках параметров СУБД, вследствие многочисленных взаимосвяей может быть раскрыта критическая конфиденциальная информация о деятельности компании или персональные данные. В то же время, это одна из наиболее трудоемких ежедневных функций каждого DBA.

Посмотрим, как Embarcadero  DBArtisan облегчает работу администраторов БД, 

dbart 01

сокращает время для достижения результатов при работе с большим количеством различных экземпляров БД или с разными типами СУБД одновременно. Для начала, из окна навигатора с набором подготовленных описаний источников данных следует воспользоваться нужным Data Source для  быстрого соединения с БД. Можно одновременно подключаться и работать с несколькими базами данных различных типов или разных версий. Но для любого типа СУБД диалоговые редакторы схем будут выглядеть похоже настолько, что даже не знакомый с работой в выбранной СУБД администратор без затруднений сможет выполнить создание, изменение или удаление таблиц, ключей, индексов, ограничений и триггеров. В то же время, для каждого типа СУБД предоставляются максимальные возможности для доступа к специфическим особенностям каждой платформы или последним расширениям, включенным в текущую версию СУБД.  

В редакторе схем имеется множество закладок, предназначенных для работы с разными элементами схем, таблиц и всех других объектов. К решению рассматриваемых задач относятся несколько закладок для управления правами доступа. На одной из таких закладок можно назначить, отменить, запретить права доступа пользователей, групп, ролей  к объекту или элементу схемы, вплоть до отдельной колонки. Редактор DBArtisan выгодно отличает возможность назначать сразу несколько прав для одного или нескольких выбранных пользователей. DBArtisan создает скрипт на диалекте языка используемой версии СУБД, который можно проверить и сохранить для дальнейшего выполнения на других серверах.

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

В управлении безопасностью систем баз данных можно назвать три основные задачи любого администратора БД:

  • Контроль текущего состояния (и причин его изменения)
  • Назначение и регулирования прав доступа многочисленных пользователей, групп, ролей и прочих субъектов доступа ко всем и каждому из объектов рабочих БД
  • Обнаружение и исправление имеющихся или потенциальных "дыр" в системах защиты информации, а также максимально оперативное реагирование на обнаруженные нарушения, с целью минимизации потерь.

schedulerВажно, что эти действия должны выполняться регулярно с одними и теми же БД, в определенной последовательности, чаще всего, по расписанию. По данным компании Forrester Research, сегодня каждому администратору БД в крупных компаниях приходится администрировать примерно 50 различных баз данных, в среднем имеющих объем около 50 Гб каждая. Если выполнять все это вручную, то станет очевидна нехватка времени на выполнение других важнейших функций, придется либо расширять штат сотрудников отделов администрирования данных, либо отказываться от ряда проверок, (что может привести к катастрофическим последствиям для компании). Здесь разумно широко применять средства автоматизации, пакетного выполнения различных заданий с немедленным получением по различным каналам извещений о результатах проверок и случаях, требующих внимания.

Автоматизация позволяет избежать излишних временных затрат и расширяет повторное использование проверенных готовых решений, действуя по принципу "Один раз описал - выполняешь многократно"

Стандартные средства, входящие в состав каждой промышленной СУБД, либо недостаточно функциональны, либо приобретаются дополнительно за немалые деньги, и практически всегда работают только с текущей версией СУБД. А как быть, если в компании DBA приходится работать с несколькими типами СУБД и поддерживать 2-3 различные версии каждой?

Каждый тип СУБД имеет множество способов настройки режимов и параметров работы, в том числе, параметров, критически влияющих на надежность доступа и безопасность данных:

  • у MS SQL Server, например, есть параметр xp_cmdshell=0(Disabled), который разрешает (или нет) выполнять строчные команды оболочки ОС в среде СУБД, например, используя T-SQL. Согласно документации, это несет значительный риск нарушения безопасности, предоставляя возможности потенциального разрушения системы или несанкционированного повышения уровня полномочий до уровня владельца или sysadmin.
  • СУБД Oracle может принимать три допустимых значения параметра REMOTE_LOGIN_PASSWORDFILE, управляющих сохранением и доступом к информации о паролях, в том числе и учетных записей с наивысшими полномочиями доступа.

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

  • когда возникло несоответствие?,
  • зачем/вследствие чего это произошло?,
  • кто внес изменения?

Embarcadero предлагает удобные средства для решения перечисленных задач. 

Для начала следует создать эталонный стандарт конфигурации, которому должен следовать каждый сервер БД данного типа в системе.cm cfg

Для этого в программе Embarcadero DB Change Manager нужно выполнить всего два действия:

  • описать соединение с источником данных (Data Source) - фактически соединиться с рабочим экземпляром сервера БД; Этот описанный источник данных будет применяться в дальнейшем для связи с этим сервером и БД
  • Создать эталонный набор параметров конфигурации серверов этого типа в компании из актуального набора параметров конфигурации сервера, с которым выполнено соединение, путем уточнения списка необходимых стандартных параметров и их разрешенных (или принятых) значений;
    сохранить его в виде стандарта.

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

В результате сопоставления:

  • создается отчет (доступный в различных форматах представления),  
  • указанные в задании сотрудники получат соответствующие извещения на свой email (или в другой канал получения нотификаций),
  • может быть создан готовый к выполнению скрипт для устранения несоотвествий или внесения модификаций в принятый стандарт (в зависимости от принятых в компании политик).

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

Все задания DB Change Manager могут выполняться много раз в разное время, регулярно и по расписанию, в автоматическом режиме, не требующем присутствия пользователя. Можно сохранить любое задание в виде, предназначенном для выполнения из командной строки с указанными параметрами. Поддерживается командная строка Windows или Linux.

Для того, чтобы находить несоответствия стандартным правилам доступа, назначенным тем или иным объектам схем баз данным, используется задание типа DB Schema Comparison Job.

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

Для аудита и контроля изменений в жизненно важных, базовых данных и НСИ служат задания типа Data Comparison Job.

Автоматизированное управление изменениями (Change Management) - это одна из важнейших функций современного администратора БД. Это ключ к его способности понимать, что происходит в информационной системе.

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

Подробно о решениях для управления схемами и правами доступа рассказывалось на вебинаре: http://goo.gl/xFfs5M

 

 

Embarcadero ER/Studio и ERwin снова расходятся

В марте этого года было объявлено, что Embarcadero и компания CA заключили соглашение по приобретению у CA продуктовой линейки  ERwin. С тех пор нам достаточно часто задают вопросы о статусе ERwin,  о планах нашей компании по развитию и поддержке этого продукта.

Вот последняя информация по этому вопросу, так сказать, из первых рук:

Объявленная 13 марта 2014 года сделка прекращена в связи с позицией правительства США, изложенной в пресс-релизе министерства юстиции. Это связано с вопросами конкуренции и антимонопольного законодательства - имея лидирующие позиции в сегменте средств моделирования для баз данных с ER/Studio, и приобретя ERwin, Embarcadero получила бы статус монополиста на этом сегменте рынка.

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

ERwin продолжает находиться "в руках" CA, однако CA трактует эту продуктовую линию как "прекращенную операцию" (discontinued operations). Ниже приведен пресс релиз CA на этот счет:

NEW YORK, Nov 03, 2014 (BUSINESS WIRE) — CA Technologies CA,  today announced that the agreement to sell its CA ERwin® data modeling business to Embarcadero, announced on March 13, 2014, has been terminated. It is anticipated that the transaction would not receive required regulatory approvals in a timely fashion, and therefore would not meet certain closing conditions.

CA is highly focused on supporting and driving value for CA ERwin customers, partners and employees. The company will continue to invest in and execute on product development, marketing and sales plans. Mark Lukianchuk, a 17-year CA veteran, has been appointed to lead the CA ERwin business. Key members of the leadership team will remain in place.

The award-winning CA ERwin is the most-used data modeling tool among data professionals, and is sold almost exclusively through more than 500 partners in over 70 countries. In August 2014, CA ERwin was named “Best Modeling Solution” in the inaugural Database Trends and Applications (DBTA) magazine Readers’ Choice Awards.

For financial accounting purposes, CA Technologies will continue to recognize the CA ERwin business as discontinued operations.

В отличие от Embarcadero, стратегия CA концентрируется на таких направлениях, как управление ИТ (IT Business Management) и управление разработкой и безопасностью на мейнфрэймах и в распределенных, облачных и мобильных средах:   

Jacob Lamm, Executive Vice President, Strategy and Corporate Development of CA Technologies: "We are actively managing our portfolio and investments, and the sale of CA ERwin further sharpens our focus on core capabilities, such as IT Business Management, DevOps and Security across mainframe, distributed, cloud and mobile environments."

Продукты линии управления данными (Data Management Business) - ERWin и ArcServe - не находящиеся более в фокусе компании, были в 2014 "выставлены на продажу", и в июле  ArcServe был продан инвестору.

ER/Studio продолжает находится в фокусе стратегии нашей компании:

  • инвестиции в это направление растут;
  • Embarcadero на всех географических рынках успешно конкурирует с ERWin и переводит заказчиков с этой платформы на ER/Studio - за счет лучшего сервиса, инноваций, широкого функционала и уверенности в будущем продукта. ER/Studio демонстрирует существенно большую производительность на операциях с большими моделями данных, например, check-in/out работает в 5-6 раз быстрее (вместо часа - 10 минут).    Более подробному рассказу о том, что получают пользователи при работе в ER/Studio по сравнению с Erwin, стоит посвятить отдельную публикацию.
  • Компания Microsoft, например, после анализа всех средств моделирования данных остановила свой выбор системы для внутреннего использования на ER/Studio.
  • Миграция моделей данных, сделанных в ERwin, в ER/Studio легко и без потерь выполняется при помощи конвертера, включенного в состав ER/Studio. Стоит отметить, что ERwin – одно из многих решений для моделирования данных, которые поддерживает этот конвертер.
  • Новые технологии TeamServer и неограниченый web-доступ пользователей позволяют расширять круг специалистов, работающих с моделями данных, и шире вовлекать бизнес-пользователей в командную работу над данными, лучше понимая их требования и эффективно используя накопленные коллективные знания об информационных активах.

Оба решения давно признаны пользователями лучшими в своем роде, но с учетом этой информации, можно ожидать, что ER/Studio продолжит свое развитие и будет и далее опережать функциональные возможности ERwin. Embarcadero продолжит помогать пользователям ERwin двигаться вперед.

Важное объявление

Мы "переехали" на новую техническую площадку.

Новый адрес моего блога "Маг Ри БД":

http://community.embarcadero.com/index.php/blogs/blogger/listall/andrew-sovtsov

С нетерпением ждем на этой странице!

Объявление

Друзья! Коллеги!

Последний месяц первого квартала - в сплошных поездках по стране и СНГ. График настолько плотный, что нарушаются все планы, в том числе, проведения вебинаров. Надеюсь, я найду у всех понимание, почему пришлось сдвинуть два последних вебинара на начало апреля. Приношу глубочайшие извинения и приглашаю все же принять участие 2 и 9 апреля, соответственно.

До встречи!

Delphi XE5 и MongoDB (продолжение)

Продолжаем конспект из предыдущего поста http://blogs.embarcadero.com/asovtsov/index.php/archives/615, посвященного разбирательству, можно ли разрабатывать приложения на Delphi XE5, получающие и сохраняющие данные в БД MongoDB.

Установка драйвера, сборка тестовых примеров и поверка их прошли без особых проблем.

Как выглядит технология обращения к MongoDB из примера программы на Delphi? Заглянем внутрь примера AddressBook.

const
  db = 'test';
  ns = db + '.addresses';

...

initialization
  mongo := TMongo.Create();
  if not mongo.isConnected() then begin
    ShowMessage(NoConnectMsg);
    Halt(1);
  end;
  mongo.indexCreate(ns, 'phone');

Соединение с сервером открывается сразу же при инициализации приложения.  Здесь используются значения по-умолчанию: localhost:27001. Поэтому нет установок свойств объекта коннекции.

Дальше видны особенности архитектуры СУБД и драйвера.

MongoDB это документ-ориентированная БД. Хранит "документы" - иерархические объекты, максимально близкие по структуре с JSON-объектами. Имеется мощный язык запросов, основные компоненты которого являются такими же объектами. Поэтому, так легко работать с запросами и их результирующими наборами данных из языков JavaScript, Python и т.п. Для обеспечения максимального быстродействия внутри эти документы хранятся в формате BSON - "binary JSON". Библиотека доступа содержит классы для работы с BSON. Для сериализации параметров запросов и полей для записи служат методы класса TBsonBuffer, учитывающие особенности представления типов элементов данных. Тем не менее, отсутствует метод (или класс), чтобы напрямую сериализовывать JSON-объект в запрос или документ. Результат запроса представляется объектом класса TBson, предоставляющего способы работы с каждым типом элементов данных и для итерации по BSON-документу, но не дающего метода десериализации BSON в строку или JSON-объект.

В рассматриваемом примере это и не требуется, там с успехом применяются существующие методы формирования BSON-запросов и чтения BSON-результатов.

procedure TForm1.btnSaveClick(Sender: TObject);
  var
    bb : TBsonBuffer;
    b : TBson;
    query : TBson;
begin
  query := BSON(['phone', txtPhone.Text]);
  if (mongo.findOne(ns, query) = nil) Or
    (MessageDlg('A record already exists with that phone number.  Replace?', mtWarning, [mbYes, MbNo], 0) = mrYes) then begin
      bb := TbsonBuffer.Create();
      bb.append('name', txtName.Text);
      bb.append('address', txtAddress.Text);
      bb.append('city', txtCity.Text);
      bb.append('state', txtState.Text);
      bb.append('zip', txtZip.Text);
      bb.append('phone', txtPhone.Text);
      b := bb.finish();
      mongo.update(ns, query, b, updateUpsert);
      ShowMessage('Record saved.');
    end;
end;
Далее...

Continue reading ›

Delphi XE5 и MongoDB

Пост в виде конспекта, чтобы не забыть и сохранить полученный опыт и идеи на будущее

Постановка вопроса

Развитие технологий хранения и обработки данных, в том числе и неструктурированных, большого объема и выраженной вариативности, вызвало стремительное развитие СУБД, альтернативных классическим реляционным. Яркий пример того — прогресс NoSQL-технологий, приходящих на замену давно известным реляционным базам данных. Вчера ещё веб базировался на нескольких известных СУБД, однако уже сегодня появилось около пяти NoSQL-решений, достойно зарекомендовавших себя. Решения оттачиваются, извлекаются уроки, — и, видя, что новая технология развивается, остальные пробуют применять её для своих нужд.

Одна из двух наиболее быстро развивающихся технологий - СУБД MongoDB компании 10gen (с этого года называется MongoDB) - документ-ориентированная NoSQL СУБД с открытым исходным кодом, горизонтально масштабируемая, обеспечивающая великолепное быстродействие на операциях чтения данных. Как документ-ориентированная СУБД, MongoDB — это довольно обобщённое NoSQL решение. Её можно рассматривать, как альтернативу реляционным СУБД.

Основная особенность - способность хранить и обрабатывать документы сложной структуры, произвольной вложенности, обеспечивая быстрый индексированный поиск по любому полю или набору полей. Такого типа СУБД называют «не имеющими схемы» (Schemaless), поскольку разные записи могут содержать документы различной структуры, причем структуру документа можно менять в дальнейшем. Обладает удобным языком запросов/модификации.  Внутренне представление документов очень близко совпадает с привычными всем записями в формате JSON, что делает их пригодными к «бесшовной» интеграции как в WEB и RESTful приложения, так и в «обычные» прикладные задачи уровня Enterprise.

Встроенным языком для MongoDB Shell является JavaScript. Компания MongoDB официально поддерживает средства программного доступа  к данным из языков:

  • C
  • C++
  • C#
  • Go
  • Erlang
  • Java
  • JavaScript
  • Node.js
  • Perl
  • PHP
  • Python
  • Ruby
  • Scala

Средства и драйвера доступа к БД MongoDB из других языков и платформ программирования поддерживаются очень активным сообществом разработчиков.

Цель - обеспечить и проверить возможность работы с MongoDB из Delphi XE5 - функционирующей в среде Windows платформы создания приложений для разных типов устройств и сред исполнения ПО.

Continue reading ›

Tagged , , , ,

Книги и материалы по проектированию БД

Недавно мой коллега спросил, могу ли я порекомендовать заказчикам литературу для освоения задач и методов моделирования баз данных, в частности моделей данных различного уровня. Ответ на этот вопрос, как мне кажется, будет полезен для многих.

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

Дейт, Мартин - вот базисные книги наших времен.

Чем же сегодня пользуются ведущие архитекторы баз данных у нас в стране и за рубежом?

Continue reading ›

Организационное, июль 2013

Наступил летний период отпусков. Точка!

В связи с этим, мы решили приостановить проведение вебинаров по продуктам Embarcadero для БД до возвращения наших авторов, гостей и слушателей из отпусков. Набирайтесь сил, здоровья и энтузиазма на этот и весь следующий год!  Мы готовим ряд обновлений наших продуктов и будем представлять новые.

Для тех, кто не смог принять участие в прошедших вебинарах, по каким-либо причинам хотел бы еще раз прослушать их, есть возможность взять видеозаписи на YouTube:

https://www.youtube.com/user/MrAndysova/videos

И не забывайте про этот блог!

HTML5 Builder: Где находится PDO

Не собирался писать об этом, но получил письмо от клиента с вопросом: "Я создал форму в HTML5 Builder, из Data Explorera перетащил на нее нужную мне таблицу MS SQL Server, запустил, а на экране браузера вижу непонятное сообщение, что не получилось найти PDO драйвер. В чем дело?". Я хочу ответить на него здесь. Кому-то вопрос покажется наивным и по-детски простым. Но, напомню, мы позиционируем этот продукт не для гиков-экспертов по PHP разработке, а для разработчиков на Delphi, кому необходимо быстро создать WEB-приложение или страницу прямо сейчас, без получения полного академического обучения.

  1. Установите правильные параметры соединения с БД MS SQL Server. Например, для моей БД параметры на картинке снизу обеспечивают правильное соединение с удаленным сервером. Обязательно протестируйте соединение, нажав кнопку Test Connection.

    Вот тут уже возникает первый "капкан": для того, чтобы соединение сработало, нужно, чтобы на этом ПК предварительно был установлен Microsoft SQL Server Native Client, соотвествующий версии вашего MS SQL server и разрядности вашей ОС. Взять его можно в Microsoft Download Center.  Я взял пакет установщика здесь

Continue reading ›

Tagged , ,

Bad Behavior has blocked 0 access attempts in the last 7 days.

Close