SQL Server – это комплексная платформа баз данных, обеспечивающая управление данными в масштабе предприятия и оснащенная интегрированными средствами бизнес-аналитики (Business Intelligence, BI). Ядро СУБД SQL Server обеспечивает безопасное и надежное хранение данных в реляционном формате, в формате XML а так же объектов среды CLR Microsoft.NET Framework. Благодаря поддержке широкого набора форматов, SQL Server обеспечивает гибкость, необходимую для создания современных комплексных решений. Эта платформа также предоставляет возможность создания и управления высокопроизводительными приложениями баз данных с высоким уровнем доступности.
В основе решения управления корпоративными данными лежит ядро базы данных SQL Server. Помимо поддержки реляционных баз данных и данных в формате XML, SQL Server также сочетает лучшее в таких областях, как анализ, подготовка отчетов, интеграция данных и рассылка уведомлений. Выгодным преимуществом SQL Server является тесная интеграция с Microsoft Visual Studio, Microsoft Office System и целым комплектом средств разработки, включая Business Intelligence Development Studio. Это позволяет создавать и развертывать экономически эффективные решения бизнес-аналитики, которые позволят сотрудникам доставлять аналитическую информацию в любое место предприятия при помощи карт ключевых показателей эффективности, панелей управления, веб-служб и мобильных устройств.
Установка и настройка Microsoft SQL Server 2019 + Management Studio
Сервер баз данных Microsoft SQL Server в качестве языка запросов использует версию языка SQL, получившую название Transact-SQL (сокращённо T-SQL). Язык T-SQL являетсяся реализацией SQL-92 (стандарт ISO для языка SQL) с множественными расширениями.
В SQL Server начиная с версии 2005 встроена поддержка.NET Framework. Благодаря этому хранимые процедуры БД могут быть написаны на любом языке платформы.NET, используя полный набор библиотек, доступных для.NET Framework, включая Common Type System (система обращения с типами данных в Microsoft.NET Framework). Однако, в отличие от других процессов,.NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.
Последняя версия SQL Server — SQL Server 2008 R2 направлена на то, чтобы сделать управление данными самонастраивающимся, самоорганизующимся и самообслуживающимся механизмом — для реализации этих возможностей были созданы технологии SQL Server Always On. Это позволяет уменьшить до нуля время нахождения сервера в нерабочем состоянии.
В SQL Server 2008 для поддержки структурированных и частичноструктурированных данных, включая цифровые форматы для изображений, звуков, видео и других типов мультимедиа был добавлен новый тип хранения больших двоичных объектов (BLOB) FILESTREAM, который объединяет компонент Database Engine с файловой системой NTFS, размещая данные больших двоичных объектов (BLOB) в файловой системе в виде файлов. Манипулирование данными, хранящимися в FILESTREAM осуществляется при помощи инструкций Transact-SQL, что позволяет использовать оптимизированное хранилище без изменения логики приложений его использующих. Интерфейсы файловой системы Windows также обеспечивают потоковый доступ к этим данным.
Установка Microsoft SQL Server 2019 Express на Windows 10 – пошаговая инструкция для начинающих
Кроме этого, были включены специализированные форматы даты и времени и пространственные (Spatial) типы для пространственно зависимых данных.
Для повышения эффективности администрирования в SQL Server были включены библиотеки Declarative Management Framework, позволяющие назначать в декларативной форме полномочия для баз данных или отдельных объектов БД. Были улучшены методы компрессии данных.
Выпуски SQL Server
Различные выпуски SQL Server удовлетворяют индивидуальным требованиям каждой организации или отдельного лица к производительности, среде выполнения и цене. Набор устанавливаемых компонентов SQL Server зависит от потребностей конкретного пользователя.
В следующей таблице приведено описание серверных выпусков SQL Server.
Выпуск | Определение |
Datacenter (x86, x64 и IA64) | Построенный на основе SQL Server 2008 R2 Enterprise, редакция SQL Server 2008 R2 Datacenter представляет собой высокопроизводительную платформу обработки данных, предоставляющую самый высокий уровень масштабируемости для крупных приложений, виртуализации и консолидации, а также управления инфраструктурой базы данных организации, что позволяет организациям эффективно определять ответственную среду. |
Enterprise (x86, x64 и IA64) | Выпуск SQL Server 2008 R2 Enterprise является многофункциональной платформой обработки данных, обеспечивающей встроенную безопасность, доступность и масштабируемость в сочетании с надежными возможностями бизнес-аналитики, что позволяет добиться высокого уровня обслуживания даже при критических рабочих нагрузках. |
Standard (x86 и x64) | Выпуск SQL Server 2008 R2 Standard является идеальной платформой для обработки данных и бизнес-аналитики, необходимой отделам и малым организациям для выполнения их приложений, что позволяет эффективно управлять базами данных при минимальном использовании ИТ-ресурсов. Выпуск SQL Server Standard for Small Business включает все технические компоненты и возможности выпуска SQL Server Standard и лицензирован для использования в компаниях малого бизнеса, число компьютеров в которых не превышает 75. |
Специализированные выпуски SQL Server предназначены для особых пользовательских сред. В следующей таблице описаны эти выпуски SQL Server.
Условие | Определение |
SQL Server Developer (x86, x64 и IA64) | Выпуск SQL Server Developer позволяет разработчикам строить приложения любого вида на базе SQL Server. Этот выпуск включает все функциональные возможности выпуска SQL ServerDatacenter, однако лицензируется для разработки и тестирования системы, а не для применения в качестве рабочего сервера. Выпуск SQL Server Developer является идеальным выбором для тех, кто создает и тестирует приложения. Выпуск SQL Server Developer можно обновить для производственного использования. |
SQL Server Workgroup (x86 и x64) | Выпуск SQL Server Workgroup является идеальным выбором для баз данных отделений — надежная платформа для управления данными и создания отчетов, включающая возможности обеспечения безопасности, удаленной синхронизации и управления. |
SQL Server Web (x86 и x64) | Выпуск SQL Server Web — это вариант с низкой общей стоимостью владения, предназначенный для размещения веб-сайтов, который обеспечивает масштабируемость и функции управления для небольших и крупномасштабных веб-свойств. |
SQL Server Express (x86 и x64) SQL Server Express with Tools (x86 и x64) Выпуск SQL Server Express with Advanced Services (x86 и x64) | Платформа баз данных SQL Server Express основана на SQL Server. Она также является заменой для Microsoft Desktop Engine (выпуск MSDE). Благодаря интеграции со средой Visual Studio, выпуск SQL Server Express облегчает разработку управляемых данными приложений, обладающих богатыми возможностями, обеспечивающими безопасность хранения данных и не требующими много времени для развертывания. SQL Server Express — бесплатный выпуск, который могут распространять независимые поставщики ПО (при соблюдении соответствующего соглашения). Выпуск SQL Server Express идеально подходит для обучения, а также для построения настольных или небольших серверных приложений. Этот выпуск — лучший выбор для независимых поставщиков программного обеспечения, непрофессиональных разработчиков и любителей, которые хотят создавать клиентские приложения. Если необходимы дополнительные функции базы данных, SQL Server Express можно с легкостью обновить до расширенных версий SQL Server. |
Compact 3.1 (x86) | SQL Server Compact 3.5 — бесплатная внедренная база данных, которая идеально подходит для построения изолированных и иногда сетевых приложений для мобильных устройств, рабочих станций и веб-клиентов, работающих на всех платформах Windows. |
Более подробное сравнение функциональных возможностей различных редакций SQL Server 2008 R2 можно посмотреть по адресу:
https://msdn.microsoft.com/ru-ru/library/cc645993.aspx.
Использование SQL Server 2008 с клиент-серверными приложениями
На компьютер, где работают клиент-серверные приложения, которые подключаются непосредственно к экземпляру SQL Server, достаточно установить только клиентские компоненты SQL Server. Установка клиентских компонентов будет хорошим выбором также и в том случае, если администрируется экземпляр SQL Server на сервере базы данных или планируется разработка приложений SQL Server.
При выборе установки клиентских компонентов будут установлены следующие компоненты SQL Server: программы командной строки, средства служб Reporting Services, компоненты связи, модели программирования, средства управления и разработки и электронная документация по SQL Server.
Компоненты SQL Server
При установке SQL Server мастер установки на странице «Выбор компонентов» позволяет выбрать компоненты SQL Server, которые должны быть установлены.
Компоненты сервера | Описание |
SQL Server Database Engine | В состав компонента SQL Server Database Engine входит компонент Database Engine, основная служба для хранения, обработки и обеспечения безопасности данных, репликации, полнотекстового поиска и средств управления реляционными и XML-данными. |
Analysis Services | Службы Analysis Services содержат средства создания и управления приложениями аналитической обработки в сети (OLAP) и приложениями интеллектуального анализа данных. |
Reporting Services | Службы Reporting Services включают в себя серверные и клиентские компоненты для создания, управления и развертывания табличных, матричных и графических отчетов, а также отчетов в свободной форме. Службы Reporting Services являются расширяемой платформой, которую можно использовать для разработки приложений отчетов. |
Integration Services | Службы Integration Services представляют собой набор графических средств и программируемых объектов для перемещения, копирования и преобразования данных. |
Средства управления | Описание |
SQL Server Management Studio | Среда SQL Server Management Studio представляет собой интегрированную среду для доступа, настройки, управления, администрирования и разработки компонентов SQL Server. Среда Management Studio позволяет работать с SQL Server разработчикам и администраторам любого уровня подготовки. Обозреватель Internet Explorer 6 с пакетом обновления 1 или более поздней версии необходим для любой установки среды Management Studio. |
Диспетчер конфигурации SQL Server | Диспетчер конфигурации SQL Server обеспечивает базовые возможности управления конфигурациями для служб, серверных протоколов, клиентских протоколов и псевдонимов клиентов SQL Server. |
SQL Server Profiler | Приложение SQL Server Profiler предоставляет графический пользовательский интерфейс для наблюдения за экземпляром компонента Database Engine или служб Analysis Services. |
Помощник по настройке ядра СУБД | Помощник по настройке ядра СУБД помогает создавать оптимальные наборы индексов, индексированных представлений и секций. |
Business Intelligence Development Studio | Среда Business Intelligence Development Studio представляет собой интегрированную среду разработки для решений служб Analysis Services, Reporting Services и Integration Services. Обозреватель Internet Explorer 6 с пакетом обновления 1 или более поздней версии необходим для любой установки среды BI Development Studio. |
Компоненты связи | Устанавливает компоненты для связи между клиентами и серверами и сетевые библиотеки для DB-библиотеки, ODBC и OLE DB. |
Документация | Описание |
Электронная документация по SQL Server | Основная документация для SQL Server. |
Экземпляры SQL Server
На одном компьютере одновременно можно запустить несколько экземпляров SQL Server, и каждый экземпляр выполняется независимо от других.
Каждый экземпляр SQL Server состоит из отдельного набора служб, которые имеют специальные параметры сортировки и другие настройки уровня сервера. Структура каталогов, структура реестра и имена служб отражают имя и идентификатор конкретного экземпляра, создаваемого в процессе установки SQL Server.
Каждый экземпляр является либо экземпляром по умолчанию, либо именованным. Имя экземпляра по умолчанию – «MSSQLSERVER». Имя экземпляра SQL ServerExpress по умолчанию – «SQLExpress». Клиенту при установлении соединения имя экземпляра указывать необязательно.
Именованный экземпляр определяется пользователем при установке и может быть установлен без предварительной установки экземпляра по умолчанию. Экземпляром по умолчанию может быть SQL Server 2000, SQL Server 2005 или SQL Server 2008.
На одном сервере или процессоре поддерживается несколько экземпляров SQL Server, но только один из них независимо от версии может быть экземпляром по умолчанию. Все остальные экземпляры должны быть именованными.
Системные базы данных
Когда Вы устанавливаете SQL Server, автоматически создается четыре системные базы данных, которые играют жизненно важную роль для нормального функционирования SQL Server — Master, Resource, Model, Msdb и Tempdb.
База данных Master
Эта база данных хранит всю критическую для сервера информацию о конфигурации, учётных записях пользователей, запускаемых процессах, сообщениях об ошибках, расположении главных файлов баз данных и т.д. При её повреждении, можно использовать утилиту rebuildm.exe, которая восстанавливает базу Master и затем восстановить пользовательские базы. Старайтесь всегда иметь актуальную копию системной базы данных Master.
База данных Resource
База данных Resource содержит все системные объекты, входящие в SQL Server, и доступна только для чтения. Физические файлы базы данных Resource имеют имена mssqlsystemresource.mdf и mssqlsystemresource.ldf. С каждым экземпляром SQL Server может быть связан один и только один файл mssqlsystemresource.mdf; кроме того, экземпляры не могут использовать этот файл совместно.
Системные объекты SQL Server, такие как sys.objects, физически хранятся в базе данных Resource, а логически отображаются в схеме sys для каждой базы данных. База данных Resource не содержит пользовательских данных или метаданных и скрыта от пользователя, она не отображается в Обозревателе объектов, информацию о ней нельзя получить вызовом системной хранимой процедуры sp_helpdb или запросом к представлению sys.databases.
Резервное копирование базы данных Resource средствами SQL Server не предусмотрено. Пользователь может создать резервную копию файла mssqlsystemresource.mdf или диска с этим файлом сторонними средствами, но восстановить такие резервные копии с помощью SQL Server не удастся. Восстановить резервную копию файла mssqlsystemresource.mdf можно будет только вручную, при этом следует соблюдать осторожность, чтобы не перезаписать текущую базу данных Resource устаревшей или потенциально небезопасной версией.
База данных Model
Эта база данных используется, как шаблон для новых баз данных то есть, всякий раз, когда Вы создаете новую базу данных, объекты в этой базе данных копируется в новую базу данных. Например, когда создается новая база данных без указания её размера, SQL создаст её с размер Model, то есть 0.75 МБ и скопирует все объекты из образцовой базы в новую базу данных. Если Вы хотите исполнить некоторые схожие действия для всех вновь создаваемых пользовательских базах данных, Вы можете включать необходимые объекты, таблицы, процедуры и т. п. в Model, и тогда, каждая новая база данных также будет их содержать.
База данных Msdb
Это одна из важных системных баз данных SQL, обеспечивающая его управление и обслуживание. База данных Msdb содержит задания (task-scheduling), обработку исключений, аварийное управление и информацию об операторах системы, то есть содержит информацию для всех операторов об их адресах электронной почты или номерах пейджера, а также информацию об истории по всем сеансам резервного копирования или восстановления баз данных.
База данных Tempdb
Следуя своему названию, эта база данных хранит все временные таблицы и промежуточные результаты group by, order by, distinct и т.д. Временные данные хранятся в Tempdb, пока хоть один пользователь подключён к SQL Server. Существует два вида временных таблиц: локальные и глобальные.
Локальные временные таблицы видны только их создателям до завершения сеанса соединения с экземпляром SQL Server, как только они впервые созданы или когда на них появляется ссылка. Локальные временные таблицы удаляются после отключения пользователя от экземпляра SQL Server. Глобальные временные таблицы видны всем пользователям в течение любых сеансов соединения после создания этих таблиц и удаляются, когда все пользователи, ссылающиеся на эти таблицы, отключаются от экземпляра SQL Server. Tempdb создаётся каждый раз заново при запуске SQL сервера, поэтому все временные данные будут потеряны после перезагрузки SQL сервера или при его крахе.
Источник: poisk-ru.ru
Micrsoft SQL Server для 1С
Почему 1C “тормозит” или что такое SQL сервер?
Введение
Данная статья поможет понять многим из разработчиков и пользователей, нужен ли им SQL-продукт или нет. И для чего собственно он нужен.
Итак, первое, что необходимо знать, понять и запомнить: SQL-системы не ускоряют выполнения выборок и печать отчетов. Если Вы рассчитываете, что после установки 1C-Торговли на SQL, Скорость работы системы врзрастет в разы, Вы глубоко заблуждаетесь. Быстрее она работать не станет. В связи с этим говорить о том, что “…SQL-Торговля — это тормозная система…” абсолютно не имеют смысла.
Теория
Несколько лет назад одно компьютерное издание провело сравнительный анализ (в частности и быстродействия) систем управления базами данных ( сокращенно СУБД), построенных на основе обычных файл серверов и с использованием клиент-серверных (SQL) систем. Естественно, условия испытаний по возможности были нивелированы, т.е. применялись одинаковые объемы баз данных, одинаковые их структуры, один и тот же компьютер в качестве сервера, одинаковое количество рабочих станций и т.д.
Если мне не изменяет память, из клиент-серверных систем были испытаны Oracle, Interbase, Informix, Gupta и самый дешевый в то время Watcom SQL Server. Во всех случаях, средняя скорость выполнения запросов в SQL-системах была ниже, чем у файл-серверной системы (сейчас об этом эффекте можно прочесть в любой серьезной книге по SQL ). Испытатели не были удивлены полученным эффектом, поскольку были людьми грамотными и понимали причину такого поведения SQL-систем при заданных условиях эксперимента. Ведь задачей эксперимента было сравнение быстродействия двух видов систем и поэтому были выбраны условия, позволяющие произвести это сравнение.
В частности для тестов использовались базы данных объемом 1.5 — 2 Гигабайта. Ведь если бы исследователи взялись проводить испытания, используя базы данных на порядок большего размера, то им просто не с чем было бы сравнивать SQL-варианты, поскольку обычная файл-серверная система на таких объемах информации просто заткнулась бы. Вот в этом то и состоит основное отличие и достоинство клиент-серверных систем: они будут работать со вполне приемлемой скоростью с базами данных такого объема, с которыми файл-серверная система работать просто не сможет (”не сможет” в том смысле, что ее функциональность, в том числе и быстродействие, станут неприемлемы для коммерческих приложений).
Сетевой вариант 1С программы, файл-серверная база SQL
Рассмотрим обычный сетевой вариант реализации Торговли 1С. Она работает на файл-серверном принципе, это значит что обработка данных производится вычислительными мощностями данной рабочей станции, а сервер является ничем ином как дисковое устройство с хранящимся на нем файлом базы данных. Объясню, что при выполнении задачи, например формирование отчета, фрагмент базы данных (из которого будут отбираться данные для этого отчета) по сети передается на рабочую станцию (запросившую формирование отчета) и обрабатывается непосредственно процессором этой рабочей станции.
Быстродействие такой системы напрямую зависит от скорости жесткого диска диска сервера, скорости передачи данных по сети (канал локальной сети 10 или 100 мегабит), тактовой частоты процессора рабочей станции, размера кеша данного процессора, объема оперативной памяти, в общем всех «железных» факторов от которых зависит производительность компьютера. Центральный процессор сервера в таком случае, играет уже роль второстепенную и просто обеспечивает передачу потока данных с диска в сетевой канал и обратно. Суть в том что, практически вся база данных перегоняется по сети на рабочую станцию где она и обрабатывается.
Если несколько пользователей запускают одновременно выполняют формирование отчетов, эти компьютеры начинают качать базу к себе через сеть, и сервер не успевает всем одновременно предоставить быструю передачу данных, это и становиться причиной притормаживания работы всей 1с системы в целом. Менее емкие операции, как например ввод нового документа, или просто просмотр ранее созданных документов, то объем передаваемых от сервера данных значительно ниже, хотя в реальности ввод нового документа сопровождается поиском клиента в справочнике, вычислением задолженности клиента и прочее, что также вызывает повышение передаваемого трафика от сервера к клиенту. Следует помнить о необходимости синхронизации доступа рабочих станций к данным.
Поскольку обработка данных ведется на уровне рабочих станций, а файл-сервер просто играет роль разделяемого дискового устройства, задачи синхронизации решаются в таких системах с помощью организации различных файлов блокировок хранящихся на диске файл-сервера, в эти файлы каждая рабочая станция записывает свои логи, информацию о данных, которые она получает, передает и изменяет в данный момент, при попытке считать данные проверяет не заняты ли эти данные другим запросом в данный момент. Несмотря на ряд недостатков, зависающие блокировки при аварийном выключении рабочих станций, возникновение тормозов в работе всей системы при изменении большого количества записей, этот способ вполне работоспособен.
Скорость работы системы файл-серверной базы, напрямую зависит от обрабатываемой базы данных. Заметное снижение скорости работы начинает проявляться, когда размер базы данных достигает 300 — 500 Мб, а за отметкой 1 Гигабайт работать уже практически невозможно.
Цифры взяты приблизительные, и зависят от производительности рабочих станций, используемого программного обеспечения и формата базы данных. К примеру, при использовании формата таблиц базы данных Paradox замедление работы наступает значительно позже, чем при использовании формата DBase. Когда эти тормоза уже мешают нормально работать, пользователи системы идут на различные хитрости: закрывают старую базу и открывают новую каждый квартал, пытаются удалить старые данные (почистить базу) и прочее. Однако любой бухгалтер скажет Вам, что данные нужны ему не за квартал, а минимум за год и предпочтительно в динамике, а не в виде отдельных кусков. Ведь долги клиентов иногда тянутся годами.
Временным решением проблемы в такой ситуации может быть увеличение пропускной способности сети за счет установки 1 гигабитной сети вместо 100 мегабитной и интеллектуальных маршрутизаторов вместо тупых хабов. Однако, маршрутизаторы чрезвычайно дороги, а гигабитная сеть даст повышение пропускной способности лишь в 2.5 — 3 раза (а не в 10 раз, как этого бы хотелось). Да смысла увеличивать пропускную способность сети нет, когда жесткий диск сервера работает на пределе своей производительности?
Через пол-года Ваша база данных вырастет еще на 300-500Мб и система опять начнет задыхаться, пустив по ветру все вложенные в модернизацию денежки. Не следует забывать и еще об одной значительной детали. Это регулярное архивирование базы данных. Знаете ли вы, что за время пока будет архивироваться база данных объемом 1 — 1.5 Гб, пообедать, посмотреть кино и поругаться с начальником.
А архивация должна производиться ежедневно. При этом во время архивирования базы, ни один из пользователей работать в программе не сможет. Как тут быть? Можно настроить резервирование по расписанию, средствами WIndows, или установить программу, которая будет делать архив по ночам, когда сервер простаивает, и в базе никто не работает. К примеру есть хорошая бесплатная программа архивации Cobian Backup.
Серверный вариант 1С базы (с использованием СУБД)
Теперь рассмотрим принцип работы с базой данных на SQL. Так называемую клиент-серверная систему. Если кто-то жалуется о том, что у него тормозит SQL, спросите какой у него сервер. Если он ответит, что-то вроде: Pentium 4.. то можете смело сказать ему, что он … мало знает о том как надо готовить SQL сервер.
Серверы для SQL-систем должны иметь высокие показатели производительности, и отказоустойчивотси. Pentium Core2Duo 2х ядерный, частотой от 2,5 Гигагерц, 4Гб ОЗУ, RAID массивом минимум из 2х жестких дисков SATA2 — это пожалуй минимум, на котором может НОРМАЛЬНО функционировать программное обеспечение MS SQL Server на 10-15 подключенных клиентов (пользователей базы данных).
При этом, сеть с пропускной способностью 100Мбит даже не обязательна. Дело в том, что при работе с SQL-сервером рабочая станция не качает базу данных к себе по сети. Она просто передает по сети компактный запрос на сервер, который выполняет заданную выборку, и передает результат запроса обратно на рабочую станцию. Таким образом, трафик по сети значительно ниже чем в случае файл-серверной базой.
Конечно, если при разработке клиентской части программного обеспечения будет допущена ошибка и будет сформирован запрос, результатом выполнения которого является вся база данных или большая ее часть, то вся информация будет качаться на рабочую станцию, создавшая такой запрос. Но это уже по большей части лежит на совести разработчиков прикладных задач, это применительно к программам 1С — и на совести тех, кто занимается настройками (и на совести разработчиков из “1С” — в части запрещения оптимизации таких запросов).
Схема работы SQL серверной связки 1С
Теперь рассмотрим, что происходит с сервером в SQL системе. Север сам обрабатывает полученный запрос, и легко представить себе, что если с SQL-системой работают 10 пользователей, то для сервера это практически то же самое, как если бы на нем были одновременно запущены 10 экземпляров программы, с которой работают пользователи (например 10 локальных копий 1С-Торговли). Попробуйте запустить локально на каком-нибудь Pentium 4 десять экземпляров 1C-Торговли и выполнить одновременно 10 отчетов об остатках на складе. Представив это, возможный результат Вы поймете, что всякие разговоры о тормозах SQL-системы без обсуждения параметров сервера не имеют никакого смысла.
SQL-системы очень требовательны к ресурсам процессора, и сервера в целом, то есть нужен очень мощный и многоядерный процессор, достаточно высокий обьем оперативной памяти (по сравнению с другими серверами, или рабочими станциями, где можно отделаться 1-2 гигбайтами). В идеале для таких систем следует использовать компьютеры с RISC процессорами в многопроцессорном варианте (например как в продукции SUN Microsystems). SQL — системы имеют существенное преимущество: даже при использовании сервера стоимостью 4 — 5 тыс. $ будут работать вполне приемлемо, с позволяя добиться хорошей скорости при работе с базами данных такого объема, который обычная файл-серверная система просто перестанут работать.
Причем, на SQL варианте, объем БД может достигать в несколько десятков ГИГАБАЙТ. А скорость доступа к данным останется на прежнем уровне, ведь — они расположены, на диске сервера и не требуют передачи по сети для последующей обработки. Все запросы поступают к серверу, так что кроме обычного файлового кэширования есть огромные возможности по оптимизации выполнения запросов, их распараллеливанию. Все эти эти возможности изначально заложены в программном обеспечении пакета MS SQL Server, фирмой 1С разработан сервер предприятия, который работает в связке с СУБД MS SQL.
Также возможно применение различных ухищрений, например в виде серверов-репликаторов (для разделения групп пользователей на тех, кто пользуется только отчетами, т.е работает в режиме “только чтение”, и тех, кто активно изменяет документы) или разделение баз данных по разным дисковым массивам. При перегрузке дисковой системы она легко модернизируется, например с помощью RAID-массива (не забывайте однако, что SQL-система — это вообще иная ценовая категория как в отношении программного обеспечения, так и по стоимости серверного железа)
Преимущества SQL базы данных для 1С
В первую очередь использование SQL системы снижает нагрузку на локальную сеть. Вообще, SQL-система предоставляет значительные возможности в плане оптимизации аппаратной части и тонкой настройки программной части для увеличения производительности. Поэтому говорить о том что SQL-система тормозит, имеет смысл только тогда, когда эти возможности исчерпаны, а такого в принципе не может быть. О том как рабоатет сервер 1с на СУБД SQL можно проситать в этой статье.
До сих пор мы говорили о принципиальных различиях файл-серверных систем от клиент-серверных. Теперь немного о дополнительных преимуществах клиент-сервера.
Надежность SQL варианта баз данных.
Клиент-серверные системы имеют встроенный механизм работы с транзакциями, в том числе и их отката. В файл-серверных версиях программ 1С также имеется механизм работы с транзакциями, однако способ реализации их принципиально отличается. В файл-серверных версиях механизм транзакций представляет собой ни что иное, как просто блокировку всей базы данных до завершения выполнения критических по времени операции, запрошенной одной из рабочих станций. Откат возможен только при сохранении работоспособности рабочей станции, запросившей эту транзакцию.
В клиент-серверной системе этот механизм (который реализуется программным обеспечением SQL-сервера — в нашем случае MS SQL Server 2005) значительно более сложен. Он позволяет получить “слепок” базы данных на момент начала транзакции без блокировки базы данных. И слепков таких может достаточно большое количество: для каждой рабочей станции — он будет свой. И в случае “зависания” рабочей станции, открывшей транзакцию, она (транзакция) может быть просто откачена (т.е. база данных будет восстановлена в том виде, в каком она была до начала инициации транзакции). Откат осуществляется либо по запросу рабочей станции (при сохранении ее работоспособности), либо при перезагрузке рабочей станции, либо администратором SQL сервера.
Таким образом, выход из строя рабочей станции не столь опасен для целостности всей базы данных. Кроме того, SQL-система записывает так называемый журнал транзакций. По сути база данных хранится в виде ее начального содержимого и ее модификаций записанных в журнал транзакций. Такой способ хранения позволяет производить архивирование базы данных во время работы всей системы: просто состояние базы данных фиксируется на момент начала архивирования, отсекаются незавершенные транзакции, а основная база и часть журнала транзакций, содержащая завершенные транзакции записываются в архив. Процесс архивирования легко поддается автоматизации, т.е. присутствие оператора необязательно — SQL-сервер имеет встроенные средства для этого.
Защита базы данных
В общем-то защищенность данных в значительной мере зависит от прикладной задачи, 1С Торговли или 1С Бухгалтерии, однако по сравнению с обычным вариантом, в котором любой начинающий хакер спокойно может срубить пароль, в клиент-серверном варианте защита данных опирается на средства, предоставляемые администрированием SQL сервера, что гораздо более надежно.
Гибкость применения СУБД
Системы на основе SQL-сервера позволяют выстраивать сложные сетевые конфигурации со многими десятками и даже сотнями пользователей. При этом разработчику предоставляются широкие возможности по оптимизации системы, ее разделению по группам сложности и способам доступа. Серверы-репликаторы, например, дают прекрасный механизм для организации системы учета в крупной организации с разветвленной системой удаленных офисов, складов и т.п. При этом, работа на такой системе может вестись в реальном режиме времени, без перерывов для переноса и синхронизации данных — достаточно лишь организовать постоянные каналы связи 32-128 Кбит, что вполне осуществимо на наших телефонных линиях и не слишком дорого (конечно, в масштабе крупной компании).
Теперь о недостатках. А их у SQL-систем много, крупных и мелких — тех же самых, которые присущи и файл-серверным системам. Однако есть два и весьма существенных.
Главный недостаток наглядно виден из прайса фирмы “1С” — это цена. Цена не только программного обеспечения, но и цена железа на котором оно может достойно функционировать и цена обслуживания. Ну, что же делать — SQL это продукт высоких технологий, но отличное решение для бизнеса, когда торговля, или производство напрямую зависят от всех расчетов бухгалтерии и финансовых операций. А продукт высоких технологий всегда на порядок выше, и эксплуатироваться должен грамотным, обученным персоналом, поэтому даже системный администратор, способный грамотно работать с SQL-системой обойдется дороже, чем аналогичный специалист для обычной файл-серверной системы.
Подведем некоторые итоги
Не ждите, что SQL-система будут работать быстрее. Она позволяет работать в том случае, когда файл-серверный вариант уже не тянет из за возросшего числа пользователей, или обьема базы данных. Однако и обойдется это ускорение Вам не дешево.
Вот, пожалуй, и все, в кратце касаемо различия файловой бызы данных и серверной, на основе SQL. Надеемся, что эта статья помогла Вам понять зачем нужен SQL для 1С, и хоть немного сориентироваться в вопросе, что такое SQL и зачем он нужен.
Теги материала: SQL сервер для 1С,что такое SQL сервер,1С сервер, SQL сервер, 1С медленно работает, 1С тормозит, 1С зависает ,SQL для 1С
Источник: www.compline-ufa.ru
Идеи для сиквела. Бесплатные инструменты для MS SQL Server
MS SQL Server далеко не редкость в сети организаций, поскольку часто идет «в нагрузку» к бизнес-приложению. Штатные инструменты обычно большинство разработчиков и администраторов устраивают далеко не полностью. Поэтому неудивительно, что на сегодня доступно большое количество утилит, приложений и аддонов, в том числе и бесплатных, на порядок упрощающих использование MS SQL.
Idera SQL check
Бесплатный инструмент мониторинга, позволяющий получать базовую информацию о производительности сервера. Собирает около двадцати показателей: операции чтения/записи, кеш, транзакции, компиляция и перекомпиляция запросов, загрузка CPU и прочие.
Результат выводится в виде различных графиков производительности и интуитивно понятной визуализации открытых соединений и транзакций. Бесплатная версия ограничена одним сервером и отображает рекламу коммерческих продуктов той же компании. Поддерживает все версии от SQL Server 2000 SP4.
Дистрибутив на сайте будет доступен после простой регистрации, после чего на указанный email придет ссылка для закачки. Установка стандартна, по окончании следует настроить подключение к SQL-серверу. После этого можем увидеть обзорные графики производительности, размещенные в нескольких вкладках. Нажав на кнопку возле графика, получим более подробную информацию. Настроек у программы немного, единственное, на что стоит обратить внимание, — это установка во вкладке Option других интервалов обновления графиков.
У Idera есть еще много полезных бесплатных инструментов для диагностики работы MS SQL, с которыми следует познакомиться: профайлер, анализ фрагментации, просмотр SQL, агрегатор статистики, резервного копирования, модуль и сценарии PowerShell и другие.
Другие статьи в выпуске:
Xakep #197. Социальная инженерия
- Содержание выпуска
- Подписка на «Хакер» -60%
SqlBak
SqlBak — интересное решение в современном духе от разработчиков популярного решения для бэкапа MS SQL — SQLBackupAndFTP. Реализован в виде онлайн-сервиса, все настройки и действия производятся в веб-браузере, что позволяет управлять ими с любого места и устройства. На сервер при этом устанавливается программа-клиент SqlBak Client, непосредственно производящий все операции.
Обеспечивается выполнение двух важных задач администрирования. Основная — это создание резервных копий баз данных MS SQL вручную и по расписанию, восстановить работоспособность можно буквально одним кликом в браузере. Поддерживается полный и дифференциальный бэкап, сохранение журнала транзакций. Архивы сжимаются zip или 7z.
Файлы копируются в локальную или сетевую папку, внешний HDD, FTP. И что немаловажно, поддерживаются и облачные хранилища — Dropbox, Google Drive, OneDrive и Amazon S3. Кроме этого, ведется мониторинг работоспособности и производительности сервера. Если обнаружены проблемы, отчеты по операциям отправляются на указанный администратором email.
Поддерживается выполнение скриптов до и после операции бэкапа, генерация контрольных сумм, необходимых для проверки целостности архива, верификация. Каждая база может копироваться в отдельный подкаталог. Можно скачать архив с резервной копией или восстановить на другой сервер. Админу доступна история резервных копий, файлы которых можно восстановить или сохранить.
Реализовано три тарифных плана. В бесплатном Free доступна работа только с одним сервером и двумя БД, не поддерживаются облачные хранилища, а мониторинг производится с периодичностью один час. Хотя этого обычно достаточно для большинства мелких организаций, особенно учитывая бесплатность и возможность управления с любой точки. В версии Professional уже есть AES-шифрование архивов, а мониторинг идет каждую минуту. Все соединения во всех тарифных планах защищаются при помощи SSL.
Для регистрации в SqlBak достаточно иметь аккаунт в одной из соцсетей (Facebook, Twitter или Google). Чтобы подключить агент, понадобится ключ, который генерируется по ссылке Secret Key. Клиентская программа практически не имеет настроек, и после подключения к SqlBak можно о ней забыть. Обновляется ПО автоматически.
Все действия по конфигурации, мониторингу и восстановлению производятся исключительно через веб-сайт SqlBak.com. Вкладок и параметров немного, и их назначение вполне очевидно. Операции по бэкапу отображаются в Dashboard. Выбрав любое задание, можем просмотреть подробную информацию. При создании задания ничего сложного нет, все те же установки, что через SSMS.
Требуется указать компьютер, имя SQL-сервера и учетные данные, после чего будет получен список баз. Затем указываем, куда копировать, параметры сжатия, email и прочие параметры. Есть и демоаккаунт, позволяющий ознакомиться с основными возможностями без развертывания SqlBak.
SQLFuse
В крупных и средних проектах значительная часть бизнес-логики реализована в хранимых процедурах СУБД, поэтому удобство управления кодом выходит на первый план. Доступные инструменты, даже коммерческие, не всегда позволяют в полной мере управлять версиями и отслеживать изменения, удобно синхронизировать тестовую и рабочую инфраструктуру и осуществлять навигацию и поиск по коду.
Эту задачу весьма интересно и неплохо решает проект SQLFuse, отображающий объекты SQL-сервера на файловую систему: схемы, таблицы, представления, хранимые процедуры, функции, колонки, триггеры и другое. Хотя в настоящее время создание, редактирование и удаление поддерживается частично.
Все произведенные в файлах изменения накапливаются в кеше, и по таймеру производится сброс SQL-команд в БД. При сбое транзакции происходит откат всех сделанных изменений и очистка кеша. Основан на userspace файловой системе FUSE, используемой в *nix. Поэтому для развертывания понадобится компьютер с любым Linux-дистрибутивом.
Сборка стандартная, после чего необходимо настроить профиль, то есть подключение к SQL-серверу в файле sqlfuse.conf, и авторизацию (логин/пароль) в sqlfuse.auth.conf. Профилей в файле может быть несколько, что позволяет работать с несколькими базами. Далее просто монтируем SQL-сервер в каталог:
$ sqlfuse -o profilename=SQLServer ./sqlserver
После этого можно работать с файлами внутри каталога стандартными утилитами *nix — vi, cat, mс и так далее. Для удобства использования в качестве инструмента для deploy-сервера можно подружить SQLFuse с Git.
dbForge Studio for SQL Server
Продукт, родившийся из самостоятельных инструментов и различных дополнений к SQL Server Management Studio и Visual Studio. Среда разработки, а по сути — этакий комбайн, предоставляющий решение для основных задач DBA и позволяющий без проблем работать со сложными проектами. Из-за обилия функций Studio for SQL Server может поначалу показаться очень сложным, но на самом деле это не так.
Например, редактор кода содержит помощник SQL Coding Assistance, позволяющий ускорить написание SQL-кода, за счет автодополнения функций, имен и параметров объектов, таблиц и прочего. Помощник анализирует контекст и по ходу набора предлагает доступные параметры — заполнить поля запроса получается быстрее, и вероятность ошибки уменьшается.
Также предоставляются готовые шаблоны, которые можно добавлять и редактировать. Доступна функция автоформатирования кода, показ структуры, быстрый переход, подсказки и прочие мелочи. Есть дизайнер запросов, объекты для построения просто перетаскиваются из проводника.
В редактор интегрирован отладчик T-SQL, позволяющий найти источник ошибок в скриптах, хранимых процедурах, триггерах и функциях, наблюдая за их поведением во время выполнения. При отладке возможен запуск скрипта полностью, в пошаговом режиме и до точек останова.
В составе два профилировщика — запросов и событий сервера, они позволяют просматривать время выполнения, находить узкие места и оптимизировать медленные запросы при помощи настроек. Быстро настроить нужные операции в SQL Server Event Profiler помогает мастер. Полученный отчет показывает список всех событий, отвечающих выбранным критериям, дополнительные параметры позволяют выделить и контролировать наиболее интересные события. Есть еще дизайнер таблиц, который дает возможность легко создавать и пересоздавать таблицы. Диаграмма выводит структуру базы данных.
Для переноса данных SQL в новую базу данных после обновления или создания резервной копии предложен мастер экспорта и импорта данных, поддерживающий двенадцать различных форматов (CSV, Excel, DBF, Access, XML и другие). Импорт возможен в новые или уже существующие таблицы, в разных режимах (Append, Update, Delete, Repopulate).
Шаблоны импорта позволяют в последующем регулярно импортировать данные через интерфейс командной строки. Хорошим дополнением к функциям импорта/экспорта идет возможность создания снимка, синхронизации и сравнения данных, администратор при этом получает отчет, позволяющий планировать дальнейшие операции. Генератор отчетов, наглядно представляющий данные, поддерживает возможность автоматической генерации и рассылки. При помощи Security Manager администратор создает учетные записи СУБД, назначает им роли и привилегии.
Для закачки бесплатной версии потребуется регистрация. Установка стандартна, в процессе можно задать ассоциацию с расширениями файлов. Далее в появившемся окне настраиваем подключение к SQL-серверу, и можно работать. Интерфейс локализован, поэтому каких-либо трудностей его освоение не представляет.
tSQLt
Фреймворк unit-тестов с открытым исходным кодом. Удобен тем, что во время разработки не придется переключаться между различными инструментами для создания кода и тестов. Сам тест представляет собой хранимую процедуру, имя которой начинается со слова test. Для удобства тесты могут объединяться в классы — схемы SQL Server.
Каждый класс может иметь свою процедуру SetUp, которая будет вызываться перед запуском теста. Типичный тест состоит из трех частей: подготовки окружения, выполнения кода и просмотра результатов. Тесты могут изолироваться друг от друга, эта функция реализуется при помощи механизма транзакций. С тестировщика при этом снимается любая работа по очистке. Несколько процедур помогают определить проблемные места в тесте.
На выходе получаем файл в текстовом или XML-формате, поэтому можем его легко интегрировать с другим инструментом. Для сравнения ожидаемых и полученных результатов работы тестируемого кода используется набор процедур Assert*, что делает тест более читабельным и похожим на привычные unit-тесты. Естественно, можно использовать свой собственный код для сравнения результатов и ожиданий, вызывая процедуру tSQLt.Fail с описанием ошибки, если тест не пройден. Проверяемый код изолируется при помощи поддельных таблиц, представлений и хранимых процедур. При использовании tSQLt следует учитывать, что каждый тест tSQLt оборачивает в транзакцию, если в своей хранимой процедуре уже используются транзакции, это может выдать ошибку.
Перед началом работы с tSQLt необходимо произвести ряд операций: настроить экземпляр SQL Server для работы с CLR и выполнить SQL-скрипт, идущий в архиве. Параметры tSQLt позволяют при запуске выполнить все тесты всех тестовых классов, все тесты класса, конкретные тесты класса или последние выполненные тесты.
К tSQLt есть и удобный интерфейс SQL Test, разработанный сторонней компанией Redgate в виде плагина к SSMS. Правда, он не бесплатен.
SSMS Boost
Management Studio предоставляется бесплатно и покрывает большинство потребностей разработчика. При этом новые приятные возможности появляются в каждой версии, тем не менее многие вопросы в нем реализованы не совсем удачно или не реализованы совсем. Это дало толчок сторонним разработкам, и за долгое время появилось великое множество различных дополнений к SSMS. Одна из них — SSMS Boost.
Эта надстройка добавляет разные полезности, позволяющие ускорить выполнение большинства ежедневных задач, которые возникают при работе DBA. Она обеспечивает быстрый доступ к процедурам, работу с сессиями, функциями и кодом, форматирование и генерацию кода для данных, выгрузку в Excel и многое другое.
Одна из самых востребованных функций — возможность сохранения текущей работы (открытых документов и соединения с базами данных) в сессию и восстановление рабочего окружения по необходимости. При включении компьютера это позволяет сразу вернуться к тому, с чем работал. Ранее для этого приходилось использовать спящий режим компьютера, что не всегда удобно. Также поддерживается история запросов и всего, что редактировалось в окне SSMS. Это означает, что после небольшого поиска можно найти и повторить любую операцию, а не составлять запрос повторно, если такая необходимость возникнет после определенного времени.
SSMS позволяет переключаться только между базами в пределах сервера, а с SSMS Boost мы можем быстро переключаться между несколькими серверами, для этого достаточно лишь заполнить список Preferred Connections. Чтобы не запутаться, в заголовке окна SSMS отображается имя документа и данные соединения.
С помощью SSMS Boost легко открыть скрипт или создать объект из SQL-редактора без поиска его в дереве. Для этого достаточно выбрать идентификатор объекта и нажать F2 или в контекстном меню щелкнуть по пункту Script Object. Будет выполнен поиск допустимых идентификаторов на месте курсора, после чего выводится их список. Просто отмечаем нужный, и все.
Так же легко находится объект в общем дереве ( ). Возможно автоматическое форматирование блока или всего кода. Реализован расширенный поиск объектов по всем или выбранным серверам и базам. Предусмотрено создание из команд SSMS мини-макросов, которые можно выполнить при помощи одной клавиши. Для генерации скриптов доступно большое количество опций.
Горячие клавиши можно переназначить (в SSMS это стало возможным с 2012). Предлагается автозамена текста на код, настраиваемая через Extras-Settings. Работает она просто: набираем начало комбинации, затем пробел, плагин сам допишет остальное. По умолчанию список автозамены содержит шесть вариантов, но при желании его можно дополнить своими инструкциями. Так же легко можно сгенерировать условие отбора отмеченных данных (Script Data as -> Where . ).
В отличие от своего ближайшего конкурента SSMS Tools Pack, предлагающего только платную лицензию с демопериодом 60 дней, SSMS Boost можно использовать бесплатно. Для активации необходимо получить код в Extras-About/License-User/Machine и заполнить форму. Функциональных различий между Free и коммерческой Professional нет. Единственный нюанс: придется каждые 120 дней устанавливать новую версию программы (без повторной активации). Установка без сюрпризов, после чего следует перезапустить SSMS, в котором появится новый пункт в меню и в контекстном меню некоторых объектов.
SQL Sentry Plan Explorer
Частенько бывает, что некоторый запрос работает медленно, хотя вроде как проблем быть не должно совсем. В этом случае ситуацию необходимо исследовать более глубоко. SQL Profiler и Management Studio предоставляют очень хороший интерфейс для изучения запросов и планов выполнения (Execution Plan), но его информация не всегда очевидна.
Здесь выручает продукт SQL Sentry Plan Explorer, который изначально разрабатывался для службы поддержки SQL Sentry, но впоследствии компания решила сделать его доступным остальным. Позволяет просматривать план выполнения различными способами и легко переключаться между многочисленными запросами, оценивать и настраивать запросы при помощи интуитивного анализа плана выполнения.
Программа оценивает запрос, использование ресурсов (интенсивность I/O, CPU), определяет объем данных, количество строк, результат наглядно выводится в виде таблицы и схемы, показывающей иерархическое представление плана запроса, где можно быстро определить тяжелые запросы и несбалансированное распределение потоков в параллельных операциях. Диаграмма показывает основные таблицы и столбцы, визуализируя отношения между ними. Редактируя запрос, можем анализировать изменение, сравнивая результат. В отдельной вкладке показаны выражения, используемые в запросе, их анализ позволяет в том числе увидеть неявные преобразования, которые могут замедлять его выполнение. Данные при необходимости можно сортировать, чтобы сосредоточиться на важных в данный момент.
Может устанавливаться как отдельное приложение и как аддон к SSMS. Представлен в двух версиях: бесплатной FREE и коммерческой PRO. Распространяется в виде единственного файла, включающего обе версии. Если после пятнадцати дней не ввести лицензионный ключ, возможности программы автоматически конвертируются в Free (после установки можно сразу выбрать вариант Free).
Вывод
Любому из описанных решений можно легко найти замену, и, конечно, это далеко не весь список приложений, которые пригодятся администраторам и разработчикам, использующим MS SQL Server. Очень много связанных проектов предлагает codeplex.com, также поиск в интернете по ключевым словам SSMS add-in выдаст список еще несколько десятков полезных, в том числе и бесплатных решений.
Источник: xakep.ru