Какую версию MS SQL Server Express ставить на Windows 7?
Какую версию ставить из Windows 7
у меня windows xp буду ставить windows 7 какую версию мне ставить x64 или x32 или какая пойдёт.
Какую версию sql server выбрать?
Какую версию sql server выбрать, чтобы была возможность одновременно работать нескольким.
Какую версию SQL Server надо устанавливать для C# VS2010 на XP?
На сайте Майкрософт очень большой список версий SQL. Помогите пожалуйста понять, что скачать.
Если помимо VS 2017 установить отдельные инструменты работы с базами данных — SSMS и SSDT, то с их помощью можно будет работать с SQL Server Express 2016 LocalDB, которая установилась вместе с VS 2017?
Добавлено через 5 минут
Менять язык интерфейса SSMS и SSDT с одного на другой. А может и что-то ещё?!)
Добавлено через 3 минуты
Уже ставлю русскую версию MS SQL Server Express 2014
Добавлено через 2 часа 30 минут
При полной установке MS SQL Server Express 2014 (ExpressAdv 64BIT\SQLEXPRADV_x64_RUS.exe ) установилась SQL Server Management Studio (SSMS). А SQL Server Data Tools (SSDT) — нет.
Я так понимаю, что SSDT работает только в рамках VS? Сейчас дополняю SSDT для VS 2017 с помощью автономного установщика:
https://docs.microsoft.com/ru-. -installer
Но я так понял, что SSDT отдельно от VS не будет работать.
Или это не так и можно дополнительно и какую-то автономную версию SSDT установить, которая будет запускать самостоятельно без VS?
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
При установке Windows Server 2012 какую версию выбирать?
При установке Windows Server 2012 предлагается четыре варианты: какой из них лучше для.
Какую версию питона ставить?
Со всех сторон слышу что на питоне легко писать парсеры. Сам с питоном вообще не знаком. Поставил.
Какую версию Win 8 ставить
Подскажите какую Windows 8 ставить: x86 или x64 и стоит ли вообще? Процессор: AMD Athlon x4 620.
Какую версию биоса ставить на ноутбук?
Здравствуйте! Подскажите, для ноутбука Acer Aspire 5733 какой биос поставить?
Какую версию PHP ставить на апач 2.4
Привет всем! Решала поставить апач+РНР, поставила апач 2.4, и теперь никак не могу найти версию. в.
Какую версию Apache и PhP лучше ставить?
люди посоветуйти версии которые на данный момент ставить лучше всего
Технология Клиент-Сервер 1999’2
Home
Поиск
Издания
Контакты k-press.ru
| | | | k-press.ru |
Технические характеристики
Microsoft SQL Server работает на любой аппаратной платформе, на которуюой поддерживается Win32. На сегодня это PC (Intel), Alpha (Compaq), MIPS и (под большим вопросом) Power PC (IBM, Motorola). До версии 7.0 MS SQL Server работал только под управлением ОС Windows NT, но в седьмой версии появилась возможность (хотя и с некоторыми ограничениями) работать под управлением Windows 95/98. Естественно, что MS SQL Server 7.0 работает под управлением бета-версии Windows 2000 (бывшей Windows NT 5), причем при его установке на компьютер с Windows NT 4 предварительно необходимо проинсталлировать Service Pack 4 и обновленный вариант Microsoft Internet Explorer 4.0 (SP1), а под Windows 2000 он ставится без каких-либо дополнительных действий. Использование даже бета-версии Windows 2000 дает дополнительные преимущества (скорее всего, MS SQL Server 7.0 и Windows 2000-сервер были специально оптимизированы для совместной работы).
Инсталляция и первичная настройка
Здесь MS SQL Server не было равных. MS SQL Server 7.0 можно по праву назвать самым простым в установке и первичной настройке SQL-сервером. MS SQL Server 7.0 поддерживает удаленную установку. Простотой установки самого сервера сегодня удивить никого нельзя, а вот простотой настройки «клиента» могут похвастаться немногие. MS SQL Server — именно такой продукт. Установка клиентской части проходит очень просто и сразу же после этого (даже без перезагрузки) вам становятся доступны все серверы, установленные в сети. По умолчанию MS SQL Server использует протокол «Named Pipes». В версии 6.5 (до Service Pack (SP) 3) это вызывало задержки при обращении к серверу, но SP 3 устранил эту проблему. MS SQL Server 7.0 работает с одинаковой скоростью по любому из поддерживаемых протоколов. Переключить протокол можно из утилиты «Client Network Utility». Там же можно настроить разные протоколы для каждого сервера в сети (на одном компьютере может быть запущен только один SQL-сервер, но зато каждый из них может управлять несколькими базами данных).
Рис. 1 Утилита настройки «клиента»
При установке MS SQL Server автоматически определяет язык, установленный в операционной системе, и устанавливает аналогичные настройки, которые, впрочем, можно изменить, выбрав режим «custom» (см. Рис. 2)
Рис. 2 Выбор набора символов и параметров сортировки
Но все-таки, при всех достоинствах и простоте седьмой версии, и у нее нашелся серьезный недостаток. Ранее (в версии 6.х) был только один полнофункциональный сервер (если, конечно, не считать MS SQL Server 6.5 Enterprise Edition, предназначенный для работы под управлением ОС Windows NT Server Enterprise Edition). MS SQL Server 6.5 можно было поставить как на Windows NT Server, так и на Windows NT Workstation. Теперь же поставка MS SQL Server состоит по сути из двух продуктов: MS SQL Server Standard Edition (полнофункциональный вариант) и MS SQL Server Desktop Edition (несколько облегченный вариант, предназначенный для Windows 9х и Windows NT Workstation). Кроме этого существуют Enterprise Edition и Small Business Server (SBS), поставляемые отдельно. И, собственно, где же здесь проблема, спросите вы? А проблема в том, что на Windows NT Workstation больше нельзя поставить полный (Standard Edition) вариант сервера. Это увеличивает общую стоимость, особенно при специально выделенном сервере БД, так как Windows NT Server стоит на порядок дороже, чем Windows NT Workstation, а их функциональность в объеме, требуемом для SQL сервера, практически идентична. Утешением является только то, что Desktop Edition поддерживает удаленных клиентов без ограничений (официально до пяти, но фактически ограничений нет) и единственным ограничивающим фактором является его архитектурная ограниченность по сравнению с полной версией. Полный список различий в поддержке некоторых возможностей разными редакциями MS SQL Server 7.0, можно найти в таблице 1.
Таблица 1 Сравнение совместимости разных редакций SQL Server
Возможность/редакция сервера
Desktop
Standard
Enterprise
4 (но эффективность падает при наличии более 2-х процессоров и, естественно, только под Windows NT)
(без определяемых пользователем cube partitions)
(с определяемыми пользователем cube partitions)
MS SQL Server Desktop Edition, установленный на Windows 9x, имеет дополнительный ряд ограничений:
- Невозможно использовать протоколы: Named Pipes, Banyan Vines и AppleTalk (причем протокол AppleTalk не может быть использован даже для клиентской машины, работающей под управлением Windows 9x).
- Недоступна защита, обеспечиваемая Windows NT, а значит, клиенты не могут подключатся к таким серверам при помощи Windows NT Authentication (не вбивая пароль). Заметим, что клиенты на компьютерах с Windows 9x могут подключаться к SQL-серверам на Windows NT при помощи Windows NT Authentication.
- Невозможно использовать шифрование передаваемых по сети данных при помощи Multiprotocol encryption.
- Недоступно асинхронное и параллельное чтение данных с дисков.
- SQL Server на платформе Windows 9x не пользуется преимуществами виртуальной памяти, а использует алгоритм выделения памяти по запросу. Это снижает требования к памяти, но замедляет обработку больших баз данных.
- SQL Server может быть запущен только как простая исполняемая программа (не как сервис).
- Windows 9x не поддерживает журнал сообщений (event log).
- Недоступен также мониторинг производительности сервера.
Хотя приведенный выше список довольно велик, каждый из пунктов все же не является критичным, так что если нет претензий к производительности, MS SQL Server 7.0 Desktop Edition можно с успехом использовать как невыделенный сервер для 1-5 пользователей.
Intel(r)-cовместимые системы (Pentium 166 MHz или выше, Pentium PRO/II/III) На компьютере с архитектурой P6 имеет явные преимущества.
170 MB (typical)
65 MB (minimum)
90 MB (management tools only)
Small Business
Установленная сетевая поддержка
Примечания: Windows NT SP4 входит в состав поставки SQL Server. Internet Explorer необходим для работы средств администрирования (Microsoft Management Console — MMC) и HTML Help. Клиенты на отличных от Windows платформах (UNIX4, Apple MacOS(r) и OS/2) могут работать при наличии ODBC-драйверов третьих фирм.
Сетевые протоколы
При установке на клиентский компьютер копируются DLL-библиотеки для всех поддерживаемых протоколов, вот их список:
- Named Pipes — используется по умолчанию в Windows NT (2000). Недопустим при использовании сервера под Windows 9х.
- TCP/IP Sockets — используется по умолчанию в Windows 9х. Похоже, что это самый быстрый сетевой протокол для этого сервера, хотя на глаз увидеть разницу в скорости невозможно.
- Multiprotocol — использует для передачи данных средства Windows remote procedure call (RPC). В отличие от остальных сетевых протоколов не требует никаких настроек. Дополнительно позволяет: использовать расширенную защиту Windows NT, использовать шифрование как паролей, так и самих данных (не поддерживается на Windows 9х). Является самым медленным протоколом.
- NWLink IPX/SPX — Зачем нужен сегодня, непонятно, но если у кого остались клиенты сети Novell 3.х, то.
- AppleTalk ADSP — Такой же необходимый протокол как и предыдущий. ведь драйверов для Macintosh реально нет, а сами Маки уже давно используют TCP/IP.
- Banyan VINES — Поддерживается также Banyan VINES Sequenced Packet Protocol (SPP). Он недоступен ни на Alpha, ни на Windows 9х.
- Shared Memory — Собственно, и сетевым протоколом не является. Используется по умолчанию для локального доступа под Windows 9х.
В общем, можно смело сказать, что многоплатформностью MS SQL Server не блещет, но зато с протоколами все порядке, хотя, может быть, лучше было бы наоборот.
Использование
Администрирование
В поставку MS SQL Server входит небольшой, но вполне достаточный набор средств администрирования (см. Рис. 3).
Рис. 3 Программное меню SQL Server 7.0
документация — в ней отражены все аспекты, от физической организации хранения данных на дисках до мелких советов, предназначенных для начинающих пользователей. Документация представлена в новом формате — HTML Help, что обеспечивает контекстный и полнотекстовый поиск по всем разделам справочной системы.
Query Analyzer — под столь загадочным названием скрывается «Talker» (утилита интерактивного взаимодействия с SQL сервером, ранее называемая isqlw). Свое название Query Analyzer получил потому, что в нем реализована функция графического анализа SQL запросов. Это действительно шаг вперед, так как графическое представление данных значительно упрощает понимание алгоритмов выбранных оптимизатором запросов. К тому же, выделив правой кнопкой мыши один из узлов дерева запроса, можно получить доступ к средствам управления индексами и статистикой (см. Рис. 4).
Рис. 4 Графический анализатор запросов
Другим приятным нововведением стала подсветка синтаксиса SQL-запроса. Еще одним сильным преимуществом, этого продукта является то, что он Еще одним сильным преимуществом, этого продукта является то, что он выполняет запросы в отдельном потоке. Это дает возможность продолжать работать с ним даже в момент выполнения сложного запроса, а при необходимости можно даже прирвать выполнение текущего запроса. Появилась возможность получать результат в табличной форме, но, по моему, это не дает никаких преимуществ. В остальном этот продукт похож на его аналоги от других производителей, но в целом оставляет более приятные впечатления.
Enterprise Manager -основное средство администрирования, если вы, конечно, не приверженец командной строки. Enterprise Manager построен по принципу интегрированной системы администрирования. Вследствие этого он впитал такое множество административных функций, что их описание выходит за рамки обзора. Скажу только, что здесь найдутся интересные места не только для администратора, желающего сделать backup, но и для разработчика, который, например, может создать здесь графическую модель БД. К достоинствам этого продукта можно отнести: стабильность и удобство работы, интуитивную понятность, а также то, что он основан на ActiveX-библиотеке SQL-DMO, это позволяет создавать администраторские сценарии на любом языке, поддерживающем automation (например: Visual Basic или JavaScript). Странно, что Microsoft являющийся лидером в области средств разработки и усиленно продвигающий VBA, не догадался встроить VBA в Enterprise Manager. Единственным, но довольно-таки серьезным недостатком Enterprise Manager является его медленная (ооо-чень медленная) работа. Неудобства ощущались даже на машине, оснащенной двумя 333-мегагерцовыми процессорами Pentium II и 256-ю мегабайтами памяти, хотя сам сервер с успехом работал на Pentium 120 с 64-я мегабайтами.
Profiler — эта программа предназначена для целей отладки и мониторинга SQL-запросов. Она мало чем отличается от своей предыдущей версии, хотя и стала немного поудобнее.
Удаленное администрирование
Все перечисленные выше компоненты, за исключением Client Network Utility, поддерживают как локальный, так и удаленный режим работы.
Совместимость со стандартами
MS SQL Server версии 7.0 соответствует стандарту SQL-92. Как сказано в документации, «SQL Server 7.0 создан в соответствии со стандартом SQL-92, фокусируясь на SQL-92 как основном диалекте. «. Кроме SQL-92, MS SQL Server 7.0 поддерживает значительно более мойный Transact-SQL (T-SQL). T-SQL — это процедурный (в отличии от классического SQL), базирующийся на SQL язык, созданный компанией Sybase. Этот язык, претерпев некоторые (косметические) изменения, о них будет говориться далее, по прежнему является совместимым со своим исходным вариантом. Имеющиеся разногласия между диалектами SQL-92 и T-SQL легко обходятся за счет настроек и использования предопределенных переменных (ANSI_DEFAULTS, ANSI_NULLS, ANSI_WARNINGS и т.п.).
К сожалению (а может и к счастью, судить вам), в Microsoft не поддержали почин объектно-ориентированного расширения SQL-серверов. Взамен в Microsoft был создан Microsoft Transaction Server (MTS), базирующийся на технологии DCOM и предназначенный для создания, «промежуточного слоя» аккумулирующего бизнес-логику, разгружающего SQL-сервер и позволяющего распределить нагрузку на несколько компьютеров.
Драйверы и API
MS SQL Server поддерживает:
- OLE DB — основной («несущий») API. MS SQL Server 7.0 совместим с OLE DB версии 2.0. OLE DB основан на модели COM и представляет собой гибкий и масштабируемый API низкого уровня. О нем уже неоднократно писал наш журнал. Разработка этого API велась параллельно разработке MS SQL Server 7.0, и не исключено, что Microsoft разрабатывала это API в расчете на SQL Server. Как бы то ни было, OLE DB является самым быстрым и гибким API для MS SQL Server 7.0. OLE DB можно применять при разработке на языках программирования, поддерживающих прямую работу с COM. По существу, это ограничивает его применение языками C и C++. Можно попытаться применять OLE DB на Delphi, но надо учитывать, что файлы описания для Delphi недоступны. Через этот API доступны все возможности SQL Server, в том числе новые типы данных. Для OLE DB в библиотеках C++, таких как ATL и MFC, имеются удобные оболочки.
- ODBC — поддерживается Win32 спецификация Microsoft, ODBC 3.51, но можно использовать и программы, написанные в соответствии с более ранними спецификациями. Хотя ODBC тоже является низкоуровневым API, его можно напрямую использовать из большего количества языков программирования. Главным требованием здесь является поддержка языком динамически подключаемых библиотек (DLL). Через этот API также доступны все возможности SQL Server, в том числе новые типы данных.
- ADO — поддерживается версия 2.0. ADO является совместимой с OLE Automation надстройкой над OLE DB. Обеспечивает самый простой способ доступа к MS SQL Server из высокоуровневых языков программирования (MS Visual Basic, MS Visual J++, Delphi, . ) и из скриптовых языков (VBScript, JavaScript, . ). ADO применим и в C/C++, но здесь его преимущества не так очевидны по сравнению с прямым использованием OLE DB. Более полную информацию об ADO можно почерпнуть со страниц нашего журнала.
- DB-Library — до выхода седьмой версии MS SQL Server. DB-Library являлся основным низкоуровневым API. В версии 7.0 его место занял OLE DB, но DB-Library полностью поддерживается хотя и не предоставляет всех возможностей которые предоставляет OLE DB. Главным ограничением DB-Library является то, что он не поддерживает новые типы данных и ограничивает возможности при работе с прокручиваемыми курсорами. В преимущества этого API можно записать то, что с его помощью можно создавать программы для DOS и 16-битного Windows. Можно смело заявить, что этот протокол поддерживается только по вопросам совместимости.
- Embedded SQL for C (ESQL/C) — собственно, и API-то не является, а представляет собой надстройку над DB-Library. На сегодня ESQL/C устарел и не обеспечивает функциональности необходимой для современных программ, поэтому можно сказать, что этот API служит для переноса унаследованных программных продуктов и как способ упростить программирование приложений DB-Library.
- SQL-DMO — является COM-библиотекой, на которой базируется главное средство администрирования Enterprise Manager. SQL-DMO предназначен для автоматизации администраторских задач. Через него можно поменять структуру БД, произвести резервное копирование и т.д. В принципе, при помощи SQL-DMO можно исполнять SQL-запросы и работать с resultset-ми, но это не является его основной задачей.
- BDE — универсальный стандарт компании Inprise (SQL Links)
MS SQL Server 7.0 не поддерживает JDBC. Вместо этого в Visual J++ можно использовать ADO.
Что такое T-SQL
T-SQL (Transact-SQL) это процедурное расширение непроцедурного SQL, сделанное еще на заре становления SQL технологий фирмой Sybase.
Где применим
T-SQL — это гибкий и удобный язык, применимый в любом месте, где применимы SQL-выражения, а именно: в запросах, триггерах, хранимых процедурах. Единственным ограничением использования T-SQL является API, используемый при обращении к SQL Server. Не все функции из ODBC, DB-Lib и RDO позволяют использовать T-SQL. В основном ограничения касаются функций работы с курсорами (курсор применяется для интерактивного отображения и редактирования набора записей).
Прокручиваемые курсоры
В SQL Server до версии 7 единственным способом создать курсор с использованием T-SQL было помещение кода на T-SQL в хранимую процедуру и последующий вызов этой процедуры. Но и при использовании хранимых процедур ограничений, налагаемых на использование T-SQL при создании курсоров, было настолько много, что практически, используя ODBC или RDO, курсор можно было создать только по однострочному SQL-запросу (SELECT. ). Единственным средством, позволяющим создать прокручиваемый курсор с использованием сложного T-SQL запроса, была Delphi компании Inprise/Borland. Это можно сделать, используя объект TQuery. Но на самом деле TQuery попросту перекачиваетл данные на клиентскую машину в однонаправленном режиме, используя не функции работы с курсором, а функции потоковой выборки. Далее он кэшировал полученные данные в парадоксовской таблице, на базе которой он, собственно, и эмулировал прокручиваемый курсор.
Не говоря о количестве проблем, возникающих при этом (поверьте их более чем достаточно), скажем только, что TQuery является объектом Delphi и его можно применять лишь в двух продуктах Inprise: Delphi и C++Builder.
Но новая версия SQL Server в качестве базового (низкоуровневого) интерфейса использует не DB-Lib (используемый ранее), а OLE DB. OLE DB-реализация позволяет получать прокручиваемые курсоры, используя все возможности T-SQL даже без применения хранимых процедур. Единственный секрет, который надо знать — если в запросе более одного оператора SELECT, INSERT, UPDATE или DELETE, то в начале запроса надо поставить команду «SET NOCOUNT ON», а перед последним оператором SELECT — «SET NOCOUNT OFF».
Так как ADO основывается на OLE DB, то и в нем можно применять T-SQL любой сложности.
Нововведения от Microsoft
Доработки, сделанные Microsoft, невелики, но очень полезны:
Так, в SQL Server 6.5 в процедуре или триггере можно было создать курсор (в данном случае речь идет о курсоре, живущем только на сервере и используемом для внутренних нужд) для перебора набора записей, но курсор становился глобальной переменной, и если эта же процедура или триггер вызывалась рекурсивно, происходила ошибка выполнения. В версии 7 в SQL Server добавлена возможность создавать не только глобальные, но и локальные курсоры, а также передавать и возвращать локальный курсор в качестве параметров хранимой процедуры. Появился тип данных «курсор».
Идентификаторы теперь могут достигать длины 128 символов (до 7-й версии их длина не могла превышать 30 символов).
В операторе SELECT команда TOP теперь может использовать необязательный параметр PERCENT. Это позволяет получать не только фиксированное число строк, но и некоторое количество строк, составляющее определенный процент от общего количества строк в resultset’е.
Максимальная длина для binary, varbinary, char и varchar теперь составляет 8000 байт, что позволяет во многих случаях обходиться без BLOB полей.
Появились текстовые типы данных, хранящие символы в Unicode-формате: nchar, nvarchar и ntext.
Добавлен новый тип данных uniqueidentifier, позволяющий хранить в БД GUID — глобально уникальные идентификаторы. Для работы с новым типом данных добавлены несколько новых функций.
Основные конструкции языка
Как и любой нормальный процедурный язык, T-SQL поддерживает стандартные конструкции: If else, while, begin end, и т.п. Это, конечно, не современный объектно-ориентированный язык, но для встроенного языка очень неплохо.
Вот так выглядит наш тестовый код, заполняющий таблицу «tmr» миллионом записей (основные операторы выделены жирным):
Массивы против временных таблиц
При обработке информации часто требуется организовать временный массив (например, для создания сводного отчета). Многие языки программирования гордятся эффективными и удобными реализациями массивов. Это могут быть динамические массивы, списки, специальные классы (например, в MFC есть класс Cmap, реализующий идеологию хэш-индекса), и т.п. Но не о многих языках можно сказать, что реализованные в них массивы «интеллектуальны». Так вот, T-SQL вообще не поддерживает массивы . ну по крайней мере, в прямом смысле этого слова. Вместо этого в нем есть так называемые «временные таблицы». временная таблица — в прямом смысле этого слова таблица, но создается она в специальной базе данных «TempDB» и по возможности держится в оперативной памяти, не скидываясь на диск. Второе ее отличие заключается в том, что временная таблица автоматически уничтожается, если она больше никому не нужна. временные таблицы бывают двух видов: локальные и глобальные. Отличительной особенностью локальных временных таблиц является префикс #, а глобальных ##. Локальные временные таблицы могут создаваться одновременно несколькими пользователями (точнее, сессиями), и каждый пользователь (сессия) будет иметь свою копию этой таблицы. Глобальные же напротив, являются доступными всем одновременно. Создать временную таблицу можно как традиционным способом, с помощью оператора CREATE TABLE или просто оператором SELECT с утверждением INTO (SELECT * FROM Tbl_1 INTO #Tmp_tbl). Конфликты имен решаются автоматически. На временной таблице можно создавать индексы, в том числе и кластерные. Все созданные индексы уничтожаются автоматически при уничтожении таблицы.
Для последовательной обработки записей можно воспользоваться курсором. При этом данные считанной строки помещаются в локальные переменные.
Прекрасным примером использования временных таблиц является создание отчета, данные которого получаются несколькими запросами, и должны быть объединены в одну сводную таблицу.
В большинстве случаев временные таблицы удобнее массивов, так как дают возможность использовать всю силу языка SQL, и позволяют обойтись без построчного копирования, но в некоторых случаях все же наличие обыкновенных массивов не помешало бы (например, многомерные массивы или массивы структур).
Полнотекстовый поиск
Введенная в MS SQL Server 7.0 поддержка полнотекстовых запросов предоставляет возможность расширенного поиска по колонкам, содержащим символьные строки. Индексировать можно колонки как традиционных символьных типов данных (CHAR, VARCHAR), так и колонки имеющие типы text, ntext. Это позволяет создавать на базе MS SQL Server 7.0 поисковые системы, системы каталогизации документов и т.п.
Такая возможность реализуется сервисом MS Search.
MS Search является внешним по отношению к MS SQL Server сервисом. Он исполняет следующие роли:
- Поддержка индексации
- Реализует полнотекстовые каталоги и индексы (для БД). Обрабатывает запросы на определение полнотекстовых каталогов и таблиц, а также колонок, составляющие индексы в каждом каталоге. Реализует вызовы для заполнения этих индексов.
- Поддержка запросов
- Обрабатывает запросы полнотекстового поиска. Определяет, какие вхождения в индексе соответствуют критерию выбора текста. Для каждого вхождения, которое соответствует критерию выбора, сервису MS SQL Server возвращается тождество строки (что-то вроде указателя на строку) и порядковый номер этой строки, а SQL Server использует эту информацию для создания окончательного результата запроса.
Полнотекстовый поиск осуществляется довольно-таки быстро, чего нельзя сказать о заполнении полнотекстовых индексов. Нам показалось, что эта операция занимает слишком много времени. Возможно, это связано с межпроцессным обменом (ведь MS SQL Server и MS Search — это разные исполняемые модули). К сожалению, пополнение каталога не может производиться при каждом добавлении строки. Есть две возможности заполнения полнотекстовых индексов: инкрементальное заполнение и полное заполнение (настраивает индексы только для добавленных, измененных или удаленных после последнего заполнения строк. Для такого индексирования таблица должна содержать колонку с типом данных timestamp. В противном случае может выполняться только полное заполнение).
Полнотекстовые конструкции используют предикаты CONTAINS или FREETEXT, либо функции CONTAINSTABLE или FREETEXTTABLE.
К сожалению, в отличие от самого SQL Server, MS Search по умолчанию не поддерживает русский язык. Причем FREETEXT и FREETEXTTABLE вообще невозможно заставить понимать по-русски без использования программного обеспечения третьих фирм. А CONTAINS и CONTAINSTABLE все же можно заставить работать с русским языком. Для этого необходимо выполнить следующий скрипт:
После этого надо пересоздать имеющиеся полнотекстовые каталоги. Это можно сделать посредствам Enterprise Manager. Чтобы получить данные, используя предикат CONTAINS, необходимо написать примерно такой запрос.
Звездочка означает, что вы хотите получить все строки, в которых имеются слова, начинающиеся на иванов (например — иванов, иванова, ивановы. ). Обратите внимание на то, что иванов* взято в кавычки. Если этого не сделать, MS SQL Server воспримет звездочку как разделитель и возвратит только иванов.
В запросах можно использовать как простые условия так и полнотекстовые предикаты.
Следопыт приходит на помощь
Российской компанией Медиалингва в тесном сотрудничестве с Microsoft создан пакет русификации для полнотекстовой системы поиска MS SQL Server. Ему дали название «Следопыт для MS SQL Server 7.0». После установки этого пакета становятся доступны все возможности полнотекстового поиска, которые ранее были доступны только для английского языка. Так, становится доступным полнотекстовый поиск с использованием предикатов FREETEXT и FREETEXTTABLE. Это позволяет значительно упростить поиск за счет того, что MS Search начинает распознавать словоформы. С использованием Следопыта наш пример можно записать так:
Использование предиката FREETEXT позволяет получить некоторые расширенные функции типа указания весомости слова или словосочетания в запросе.
Следопыт прост в установке и совсем не нуждается в администрировании. Он является хорошим выбором для тех, кто хочет организовать полнотекстовый поиск в своих системах.
Макс. Размеры/количества
Объект
SQL Server 6.5
SQL Server 7.0