MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Информационный Канал Subscribe.Ru

#266<<  #267

СОДЕРЖАНИЕ

1.СТАТЬИ
1.1.Секционированные таблицы и индексы SQL Server 2005 (продолжение)
1.2.Использование статистики оптимизатором запросов Microsoft SQL Server 2005 (продолжение)
1.3.Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СТАТЬИ

Секционированные таблицы и индексы SQL Server 2005 (продолжение)

По материалам статьи Kimberly L. Tripp: SQL Server 2005. Partitioned Tables and Indexes
Перевод Алексея Сафонова

Секционирование индекса

Секционировать можно не только данные, но и индексы. Индексы можно секционировать с помощью той же функции, что и базовую таблицу, либо любой другой. Однако с точки зрения производительности лучше всего разделять таблицу и ее индексы, используя одну и ту же функцию. Если таблица и индексы используют одну и ту же функцию секционирования, и секционируются по одним и тем же столбцам (в том же порядке), такая таблица и индексы называются выровненными. Если индекс создается по уже секционированной таблице, SQL Server автоматически выровняет новый индекс согласно схеме секционирования таблицы, если только индекс явно не секционирован по-другому. Если таблица и ее индексы выровнены, тогда SQL Server может перемещать секции внутри секционированных таблиц более эффективно, поскольку все связанные данные и индексы разделены по одному алгоритму.
Если таблица и индексы определены не только по одной и той же функции, но и по одной и той же схеме, тогда они называются выровненным хранилищем. Вообще, если таблицы и индексы располагаются в одном файле или файловой группе, мультипроцессорные системы могут получать дополнительные преимущества за счет параллельной работы с секциями. В мультипроцессорных системах в случае выровненных хранилищ SQL Server может заставить каждый процессор работать с определенным файлом или файловой группой, и при этом быть уверенным, что не будет конфликтов при доступе к данным, поскольку все необходимые для объединения или поиска по индексу данные будут локализованы на одном и том же диске. Это позволяет большему количеству процессов выполняться параллельно без прерываний.
Для получения дополнительной информацией по теме вы можете обратиться к разделу BOL: Special Guidelines for Partitioned Indexes.

[В начало]

Особые режимы секционирования - Split, Merge и Switch

В SQL Server 2005 для помощи в управлении секционированными таблицами введено несколько новых понятий. Поскольку секционирование применяется к большим таблицам для обеспечения масштабируемости и поддержания лучшей производительности этих таблиц, весьма вероятно, что количество секций, выбранное в момент создания функции секционирования, со временем изменится. Используя оператор ALTER TABLE с новой опцией "split" ("расщепление"), Вы можете добавить в таблицу новую секцию. Когда секция "расщепляется", часть данных может быть перенесена в новую секцию, однако это не лучшее решение с точки зрения производительности. Ниже в этой статье будет приведен полный сценарий работы режима "split".
Напротив, если необходимо удалить секцию используются режимы "switch" ("переключение") и "merge" ("слияние"). "Слияние" диапазонных секций выглядит как указание граничной точки, которую необходимо удалить. Если работа ведется только с данными определенного периода и регулярно проводится архивирование базы данных (например, ежемесячно), вы могли бы архивировать одну секцию данных (самый ранний месяц) после добавления новой секции. Например, Вы могли бы пожелать иметь доступ к данным только одного последнего года; тогда в конце каждого месяца вы бы "включали" новый (текущий) месяц, и затем "выключали" бы самый ранний месяц, таким образом, проводя различия между read/write OLTP данными текущего месяца и read-only данными предыдущих месяцев, предназначенными для анализа. Однако, прежде чем Вы объедините граничную точку Вы должны выключить ее (связанные с ней) ассоциированные данные, иначе слияние может стать дорогостоящей операцией. Существует специальная методика, позволяющая добиться при этом наибольшей эффективности. Понятия "switch", "merge" и "split" только на первый взгляд несколько сложными.
В данном сценарии у вас есть read-only доступ к таблице с данным за последний год. В настоящее время в этой таблице содержатся данные с сентября 2003 по август 2004. Данные за текущий месяц, сентябрь 2004, находится в другой базе данных, оптимизированной для производительности OLTP (операций реального времени). В read-only версии таблицы имеется 13 секции: двенадцать секций, которые содержит данные (сентябрь 2003 - августа 2004), и одна последняя пустая секция (помните, что диапазонные секции включают весь диапазон значений – от бесконечно малого до бесконечно большого). Таблица могла бы содержать определение CHECK constraint, для того чтобы ограничить OrderDate значениями с 1 сентября 2003 по 1 сентября 2004; данное ограничение позволит эффективно держать последнюю секцию пустой.


Рисунок 5: Границы диапазонных секций - перед загрузкой данных/архивацией

Когда начинается октябрь (в базе данных OLTP), необходимо переместить данные сентября в секционированную таблицу, используемую для анализа. Включение/выключение секций в таблицу - очень быстрый процесс, к тому же, вся подготовительная работа может быть выполнена из-за пределов секционированной таблицы. Этот сценарий в подробностях описывается в учебном примере, который будет рассмотрен чуть ниже. Его основная идея заключается в использовании "каскадных таблиц", которые в конечном счете станут секциями в секционированной таблице ("включение" таблицы, становящейся секцией в секционированной таблице) или будут хранить устаревшие данные таблицы ("выключение" секции, становящейся автономной таблицей).
На Рисунке 6 показано "выключение" секции, становящейся отдельной не секционированной таблицей в той же файловой группе, что и основная таблица. Поскольку эта "несекционированная таблица" уже существует внутри той же файловой группы (и это является очень важным моментом), SQL Server может реализовать это "переключение" как простое изменение метаданных. Выключение секции происходит за считанные секунды, поскольку SQL Server должен всего-навсего изменить метаданные, в отличие от удаления, которое могло бы занять часы и создать блокировки на больших таблицах. Как только эта секция "выключена", у вас все еще будет оставаться 13 секций: первая (самая старая) секция теперь пуста и последняя (самая свежая, также пустая) секция должна быть теперь "расщеплена".


Рисунок 6: Выключение секции

Для того чтобы удалить первую (старшую) секцию (сентябрь 2003), необходимо воспользоваться новой опцией "слияния" оператора ALTER TABLE - "merge" (см. Рисунок 7). "Сливая" секции, вы фактически удаляете граничную точку между ними, и, следовательно, устраняете одну из секций (в данном случае сокращая количество секций до 12). Слияние секции будет очень быстрой операцией в том случае, если никакие строки данных не должны быть перемещены; в нашем случае, поскольку первая секция пуста, никакие записи не перемещаются (из первой секции во вторую). Если бы первая секция НЕ была пуста, то при слиянии данные пришлось бы перемещать из первой секции во вторую, и это было бы очень дорогостоящей операцией. Впрочем, в весьма распространенном сценарии "sliding window" ("Скользящее Окно") это никогда не должно произойти, поскольку Вы всегда будете объединять пустую секцию с активной секцией, и соответственно никакие записи перемещаться не будут.


Рисунок 7: Слияние секций

И наконец случай, когда новая таблица должна быть включена в секционированную таблицу. Помните, что для того чтобы осуществить включение секции в секционированную таблицу путем простого изменения метаданных, вся работа по загрузке данных и созданию индексов уже должна быть произведена в новой таблице - вне границ секционированной таблицы. Для включения новой секции в таблицу сначала необходимо "расщепить" последний (самый новый, пустой) диапазон на две секции. Кроме того, вам необходимо перестроить ограничение целостности таблицы под требования нового диапазона. Секционированная таблица будет включать 13 секций. Последняя секция в сценарии "Скользящее Окно" с LEFT-функцией секционирования будет всегда оставаться пустой.


Рисунок 8: Расщепление Секции

И наконец, недавно загруженные данные включаются в 12-ую секцию – в качестве данных за сентябрь 2004.


Рисунок 9: Включение Секции

В результате мы получаем таблицу такого вида:


Рисунок 10: Границы диапазонных секций - после загрузки данных/архивации

Важно знать, что split и merge – это атрибуты оператора ALTER PARTITION FUNCTION, а switch – это атрибут оператора ALTER TABLE. Кроме того, только одна секция может быть добавлена или удалена единовременно. Если в диапазонную секционированную таблицу требуется добавить или удалить сразу несколько секции, то тогда наиболее оптимальным способом балансировки данных (вместо балансировки целой таблицы для каждого расщепления) может послужить создание новой секционированной таблицы – использование новой функции и схемы секционирования и затем перемещение данных в новую секционированную таблицу. Для "перемещения" данных сначала скопируйте их, используя оператор INSERT newtable SELECT … FROM oldtable, а затем удалите исходные таблицы. Будьте осторожны, не потеряйте данные, предотвращая пользовательские (или любые другие) модификации во время этого процесса.
Более полную информацию вы сможете найти в BOL, в разделах ALTER PARTITION FUNCTION and ALTER TABLE.

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

Использование статистики оптимизатором запросов Microsoft SQL Server 2005 (продолжение)

По материалам статьи Eric N. Hanso: Statistics Used by the Query Optimizer in Microsoft SQL Server 2005

Статистическая коллекция SQL Server 2005

SQL Server 2005 собирает представленную ниже коллекцию статистической информации уровня таблиц, которая является частью объекта статистики, но SQL Server 2005 иногда использует её и для оценки стоимости запроса:

  • число строк в таблице или индексе (поле rows в sys.sysindexes).

  • число страниц, занятых таблицей или индексом (поле dpages в sys.sysindexes).

SQL Server 2005 собирает следующую статистику по столбцам таблицы и сохраняет её в объекте статистики (statblob):

  • время, когда были собраны статистические данные.

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

  • средняя длина ключа.

  • гистограмма отдельного столбца, включая номера шагов.

  • Резюме по строке, если поле содержит символьные данные. Результат, выводимый DBCC SHOW_STATISTICS, содержит столбец "String Index", который принимает значение YES, если объект статистики содержит резюме для строки.

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

  • RANGE_HI_KEY - значение ключа, показывающее верхнюю границу шага гистограммы.

  • RANGE_ROWS - определяет, сколько строк внутри диапазона (они должны иметь значения ключа меньшими, чем у своего RANGE_HI_KEY, но больше, чем меньшее значение RANGE_HI_KEY у предыдущего диапазона).

  • EQ_ROWS - определяет, какое число строк в точности равно RANGE_HI_KEY.

  • AVG_RANGE_ROWS - среднее число строк с разными значениями в диапазоне.

  • DISTINCT_RANGE_ROWS - определяет число разных значений ключа внутри этого диапазона (не, включая значения ключа предыдущего диапазона своегоRANGE_HI_KEY).

Гистограммы SQL Server 2005 формируются только по одному столбцу, который является первым в наборе столбцов ключа объекта статистики. SQL Server 2005 формирует гистограмму из отсортированного набора значений столбца в три шага:

  • Histogram initialization: инициализация гистограммы является первым шагом, на котором идёт работа по сбору последовательности значений, начинающихся с начала отсортированного набора, и до 200 значений RANGE_HI_KEY, EQ_ROWS, RANGE_ROWS и DISTINCT_RANGE_ROWS (RANGE_ROWS и DISTINCT_RANGE_ROWS на этом шаге всегда равны нулю). Первый шаг заканчивается, если были пройдены все полученные на входе значения, или если были найдены первые 200 значений.

  • Scan with bucket merge: сканирование со слиянием в диапазоны является вторым шагом, на котором, в порядке сортировки, обрабатывается каждое дополнительное значение первого столбца ключа статистики. Каждое значение в последовательности может быть добавлено к последнему диапазону или в новый диапазон, создаваемый в конце существующих диапазонов (это возможно потому, что входные значения отсортированы). Если был создан новый диапазон, то одна пара из существующих, соседних диапазонов будет объединена в единый диапазон. Эта пара диапазонов выбирается из тех соображений, чтобы предотвратить потерю информации. Число шагов после слияния диапазонов остается в пределах 200. Этот метод основан на вариации maxdiff гистограммы.

  • Histogram consolidation: консолидация гистограммы составляет третий шаг, на котором может быть подвержено слиянию ещё больше число диапазонов, если при этом не будет потерян существенный объём информации. Поэтому, даже если столбец имеет более 200 уникальных значений, число шагов гистограммы может быть меньше 200.

Если гистограмма была сформирована с использованием выборки, то значения RANGE_ROWS, EQ_ROWS, DISTINCT_RANGE_ROWS и AVG_RANGE_ROWS будут иметь оценки, и поэтому они не могут остатьсяь целыми числами.
Плотность - это информация о числе дубликатов в анализируемом столбце или комбинации столбцов, и она вычисляется, 1 / (число различающихся значений). Когда столбец используется в предикате равенства, тогда число квалифицированных строк будет оценено с использованием значения плотности, полученного из гистограммы. Гистограммы также используются для оценки селективности предикатов в выборках с неравенствами, объединениями и другими операторами.
В дополнение к timestamp (показывающему время, когда были собраны статистические данные), числу строк в таблице, числу отобранных доя создания гистограммы строк, плотности, информационной и средней длине ключа, и непосредственно самой гистограмме, статистическая информация по одному столбцу включает ещё значение All density, формируемый для каждого набора столбцов, и определяющий префикс набора статистики столбца. Это значение можно увидеть во втором блоке сток, выводимом командой DBCC SHOW_STATISTICS. All density - представляет из себя оценку: 1 / (число различающихся значений в префиксном наборе столбца). В следующей главе буде представлен демонстрирующий смысл этого значения пример.
Обратите внимание: наблюдаемое в первой строке возвращаемого dbcc show_statistics результата значение Density - является плотностью всех значений, и имеет другой смысл, чем значения RANGE_HI_KEY. Значения RANGE_HI_KEY обычно более часто встречаются в распределении. Следовательно, это Density предоставляет полезную информацию о плотности не часто встречающихся значений.
Статистика по нескольким столбцам одного набора состоит из: одной гистограммы для первого столбца (указанного в определении статистики), одного значения плотности для первого столбца, и значения All Density для каждой префиксной комбинации столбцов (включая один первый столбец). Каждый набор статистики по нескольким столбцам (гистограмма и два или более значений плотности) хранится в одном statblob вместе с timestamp последнего обновления статистики, числом строк в типичной для сбора статистике выборке, числом шагов в гистограмме, и средней длинной ключа. Резюме по строке создаётся только для первого столбца, если он содержит символьные данные.
Используйте sp_helpindex и sp_helpstats для отображения списка статик, доступных для анализируемой таблицы. sp_helpindex показывает все индексы таблицы, а sp_helpstats список всех статистик по таблице. Каждый индекс также имеет статистическую информацию для ее столбцов. Создаваемая с использованием команды CREATE STATISTICS статистическая информация эквивалентна статистике, сформированной командой CREATE INDEX, если индекс создаётся на тех же столбцах. Единственная разница это то, что при использовании команды CREATE STATISTICS будет задействована используемая по умолчанию выбора, в то время как для команды CREATE INDEX сбор статистики будет сопровождаться полным сканированием таблицы, так как в любом случае для построения индекса будут обработаны все строки таблицы.

[В начало]

Пример создания и демонстрации статистики

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

USE tempdb 
GO
-- Избавляемся от объектов, созданных при предыдущих попытках запуска примера.
IF object_id(N'Person.Contact','U') IS NOT NULL
DROP TABLE Person.Contact
GO
IF EXISTS (SELECT * FROM sys.schemas WHERE name = N'Person')
DROP SCHEMA Person
GO
- Создать типовую схему и таблицу.
CREATE SCHEMA Person
GO
CREATE TABLE Person.Contact(
FirstName nvarchar(60), 
LastName nvarchar(60), 
Phone nvarchar(15), 
Title nvarchar(15)
)
GO
-- Заполняем таблицу несколькими строками.
INSERT INTO Person.Contact 
   VALUES(N'James',N'Smith',N'425-555-1234',N'Mr')
INSERT INTO Person.Contact 
   VALUES(N'James',N'Andersen',N'425-555-1111',N'Mr')
INSERT INTO Person.Contact 
   VALUES(N'James',N'Andersen',N'425-555-3333',N'Mr')
INSERT INTO Person.Contact 
   VALUES(N'Christine',N'Williams',N'425-555-0000',N'Dr')
INSERT INTO Person.Contact 
   VALUES(N'Susan',N'Zhang',N'425-555-2222',N'Ms')
GO
-- Демонстрация того, что нет статистических данных для персон в таблице контактов.
sp_helpstats N'Person.Contact', 'ALL'
GO
-- Неявно создаём статистику по LastName.
SELECT * FROM Person.Contact WHERE LastName = N'Andersen'
GO
-- Демонстрация того, что статистика была автоматически созданы для LastName.
sp_helpstats N'Person.Contact', 'ALL'
GO

Результат:


statistics_name           statistics_keys
-----------------------------------------------
_WA_Sys_00000002_1B29035F   LastName


-- Создание индекса, при чём также создастся и статистика.
CREATE NONCLUSTERED INDEX Phone on Person.Contact(Phone)
GO
-- Проверяем, что создание индекса создало связанный объект статистики.
sp_helpstats N'Person.Contact', 'ALL'
GO

Результат::


statistics_name           statistics_keys
-----------------------------------------------
_WA_Sys_00000002_1B29035F   LastName
Phone                    Phone


-- Создаём объект статистики для нескольких полей: имя и фамилия.
CREATE STATISTICS FirstLast ON Person.Contact(FirstName,LastName)
GO
-- Показываем, что теперь у таблицы есть три объекта статистики.
sp_helpstats N'Person.Contact', 'ALL'
GO

Результат::


statistics_name           statistics_keys
-----------------------------------------------
_WA_Sys_00000002_1B29035F   LastName
FirstLast                   FirstName, LastName
Phone                    Phone


-- Отображаем статистику для LastName.
DBCC SHOW_STATISTICS (N'Person.Contact', LastName)
GO

Результат::


Информация из заголовка статистик:
Name                        Updated Rows        Rows Sampled Steps Density Average key length String Index
----------------------------------------------------------------------------------------------------------
_WA_Sys_00000002_1B29035F   Mar 25 2005 11:21AM  5   5       4     0       13.6                YES

Префикс набора полей и связанные с ним плотности и длина:
All Density Average Length Columns
-----------------------------------
0.25        13.6           LastName

Шаги гистограммы:
RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS
------------------------------------------------------------------
Andersen     0          2       0                   0
Smith        0          1       0                   1
Williams     0          1       0                   1
Zhang        0          1       0                   1


-- Если Вы берете имя объекта статистики, отображенного показанной выше командой, 
-- и его subsitute в качестве второго параметра для DBCC SHOW_STATISTICS, 
-- Вы можете сформировать подобную показанной ниже команду 
-- (точное имя автоматически созданного объекта статистики наверняка будет отличатся от Вашего).

DBCC SHOW_STATISTICS (N'Person.Contact', _WA_Sys_00000002_2D7CBDC4)

-- Исполнение показанной выше команды иллюстрирует, 
-- что Вы может посмотреть статистику по имени столбца или объекта статистики.
GO
-- Следующий выводимый результат демонстрирует статистику по нескольким полям.
-- Обратите внимание на две разных группы плотности для второго rowset.
DBCC SHOW_STATISTICS (N'Person.Contact', FirstLast)

Результат (только второй rowset)::


Префикс набора полей и связанные с ним плотность и длина:
All density Average Length Columns
----------------------------------------------
0.3333333   11.6           FirstName
0.25        25.2           FirstName, LastName

Чтобы увидеть полностью заполненную гистограмму для большой таблицы, выполните следующие команды:

USE AdventureWorks
-- Удаляем созданные ранее объекты.
IF EXISTS (SELECT * FROM sys.stats 
           WHERE object_id = object_id('Sales.SalesOrderHeader')
           AND name = 'TotalDue')
DROP STATISTICS Sales.SalesOrderHeader.TotalDue
GO
CREATE STATISTICS TotalDue ON Sales.SalesOrderHeader(TotalDue)
GO
DBCC SHOW_STATISTICS(N'Sales.SalesOrderHeader', TotalDue)

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

Руководство по работе с Microsoft SQL Server 2000 Analysis Services (продолжение)

По материалам статьи Carl Rabeler и Dave Wickert, Microsoft Corporation: Microsoft SQL Server 2000 Analysis Services Operations Guide
Перевод Виталия Степаненко

Содержание

Введение
Управление конфигурацией
Управление выпуском
Управление изменениями
Администрирование безопасности
Управление сервисом и доступностью
Управление свободным пространством и производительностью
Управление разрешением проблем и ошибок

MSSQLServerOLAPService

По умолчанию, служба MSSQLServerOLAPService работает под локальной системной учетной записью, которая имеет полные права администратора на локальном компьютере, но не имеет доступа к удаленным компьютерам. Так как локальная системная учетная запись не имеет доступа к сети, во многих случаях Вам понадобится изменить учетную запись службы на учетную запись с доступом к сети. В Windows 2000 это доменная учетная запись пользователя. Если Вы работаете в Windows Server 2003, то Вы можете использовать учетную запись NetworkService.

Учетная запись, под которой работает служба MSSQLServerOLAPService, должна иметь достаточные права для выполнения различных задач. Служба MSSQLServerOLAPService должна иметь возможность обрабатывать объекты Analysis Services, иметь доступ к источнику данных во время обработки и получать настройки безопасности в многослойной среде.

Совет: При использовании сетевого протокола именованных каналов (named pipes network protocol) процесс (например, операция обработки Analysis Services), пытающийся получить доступ к приложению (например, к SQL Server) на удаленном компьютере, должен быть аутентифицирован операционной ситемой Windows перед тем, как его аутентифицирует SQL Server. При использовании сокетов TCP/IP процесс обычно не аутентифицируется операционной системой Windows перед передачей его настроек безопасности для аутентификации в SQL Server.

SQL Server Agent

Когда Вы автоматизируете задачи по созданию объектов (например, при создании разделов) или обработку объектов, используя SQL Server Agent, учетная запись службы SQL Server Agent должна иметь достаточные права для создания или обработки объектов.

Обработка

Когда Вы запускаете службу MSSQLServerOLAPService под доменной учетной записью пользователя (или под учетной записью NetworkService), Вы должны добавить эту учетную запись в локальную группу OLAP Administrators на компьютере с Analysis Services, чтобы разрешить Analysis Services обработку измерений, разделов и ролей сбора данных на этом компьютере. Наличие этой учетной записи в группе OLAP Administrators дает службе MSSQLServerOLAPService доступ к реестру, а также папкам Data и Temporary. Пользовательские учетные записи, не являющиеся членами группы OLAP Administrators, не должны иметь такого доступа.

Доступ к источнику данных

Учетная запись службы MSSQLServerOLAPService также должна иметь права доступа к данным в базе данных источника данных, если для доступа к источнику данных используется доверенное соединение. При использовании доверенных соединений для подключения к источнику данных используется учетная запись службы MSSQLServerOLAPService. Если доверенные соединения не используются, Вы можете определить имя пользователя и пароль.

Права, необходимые для подключения к источнику данных, также зависят от типа структуры хранилища, использующегося для разделов Analysis Services. Если используется хранилище MOLAP, учетная запись службы должна иметь как минимум права на команду SELECT в базе данных источника данных. Если используется хранилище ROLAP или HOLAP, учетная запись службы должна иметь как минимум права на команды SELECT и CREATE TABLE в базе данных источника данных. Для использования ресурсов на других серверах Analysis Services необходимы также дополнительные права. При использовании связанных кубов учетная запись службы MSSQLServerOLAPService должна иметь права на чтение данных из куба и не должна быть установлена безопасность уровня ячейки. Если Analysis Services является удаленным издателем, то учетная запись службы MSSQLServerOLAPService должна быть включена в группу OLAP Administrators на компьютере, где находится удаленный раздел. Если Analysis Services является удаленным подписчиком, то учетная запись службы MSSQLServerOLAPService должна иметь права на чтение данных из куба.

Получение настроек безопасности клиента через приложение среднего слоя

Учетная запись службы MSSQLServerOLAPService не требуется в обычной клиент-серверной среде. В этой среде пользовательское приложение подключается напрямую к компьютеру с Analysis Services для выполнения запроса или создания объекта и передает настройки пользователя напрямую в Analysis Services для обработки. В зависимости от настроек безопасности уровня ячеек и уровня измерения Analysis Services дает доступ или отказывает в доступе.

Однако, если клиентское приложение пытается соединиться с Analysis Services через сервер среднего слоя, то процесс аутентификации не так прост. Обычно настройки безопасности не могут передаваться множеству компьютеров. Но если сервер приложения среднего слоя и компьютер с Analysis Services поддерживают аутентификацию и делегирование Kerberos, то клиентские настройки безопасности могут быть переданы от приложения среднего слоя к Analysis Services.

Чтобы работали аутентификация, делегирование, имперсонация и взаимная аутентификация Kerberos, служба MSSQLServerOLAPService должна быть запущена под одним из следующих типов учетных записей:

- Локальная системная учетная запись (не имеет доступа к сети).

- Доменная учетная запись администратора.

- Доменный пользователь без привилегий администратора в домене Microsoft Active Directory при условии, что администратор домена зарегистрирует Service Principal Name (SPN) учетной записи отдельно, используя утилиту setspn из Windows 2000 Resource Kit.

Замечание: Существует некоторое количество шагов, которые Вы должны выполнить, чтобы начали работать аутентификация, делегирование, имперсонация и взаимная аутентификация Kerberos. Для дополнительной информации об этих шагах смотрите "Security Account Delegation" в SQL Server Books Online. Также зайдите в Knowledge Base (support.microsoft.com) и посмотрите статью "Use Kerberos Authentication for Microsoft SQL Server 2000 Analysis Services".

Служба SQL Server Agent

Служба SQL Server Agent используется для запуска задачи Analysis Services Processing в пакете Data Transformation Services (DTS), а также для выполнения job'ов с операциями DSO, выполняемыми скриптами Microsoft Visual Basic® Scripting Edition (VBScript). Чтобы быть уверенным, что учетная запись службы SQL Server Agent имеет достаточные права для выполнения этих задач, запустите SQL Server Agent под доменной учетной записью пользователя (или под учетной записю NetworkService в Windows Server 2003) и добавьте эту учетную запись в группу OLAP Administrators на компьютере с Analysis Services.

Определение проблем с правами для SQL Server Agent иногда может быть затруднительным, пока Вы не поймете, что когда Вы запускаете job SQL Server Agent интерактивно (щелкните правой кнопкой мыши на job в SQL Server Enterprise Manager и выберите Run), используемые настройки безопасности не являются таковыми для учетной записи службы SQL Server Agent. Когда Вы запускаете job SQL Server Agent интерактивно, используются настройки безопасности пользователя, который запустил job. Настройки безопасности учетной записи службы SQL Server Agent используются только во время запуска job'а по расписанию (если только Вы не зайдете под доменной учетной записью пользователя, которую использует SQL Server Agent).

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке


Технологии XML в SQL Server 2005. Введение
Сергей Шишкин's Blog
MSSQLServer: В новом SQL сервере появился целый ряд встроенных возможностей и отдельных служб. Одной из таких возможностей является улучшенная по сравнению с SQL 2000 поддержка XML технологий...

Технологии XML в SQL Server 2005. XML схемы
Сергей Шишкин's Blog
MSSQLServer: SQL Server 2005 позволяет создать в базе данных именованную коллекцию XML схем, а затем, при создании таблицы с XML столбцом указать эту коллекцию. Тем самым, мы можем заставить сервер добавлять в XML столбец только те данные, которые содержат ссылку на пространство имен и соответствуют схеме этого пространства имен, содержащейся в коллекции...

Методика, которая гарантирует в SQL Server 2000 выбор определенного плана исполнения запроса
Ken Henderson
MSSQLServer: Одной из важнейших особенностей SQL Server является процессор оптимизации запросов. В Sybase версии SQL Server была реализована передовая технология оптимизации запросов "на лету", и, даже по настоящее время, встроенная оптимизация запроса - одна из самых полезных особенностей этого продукта. Таким образом, автоматически оптимизируя запросы конечных пользователей, SQL Server продолжает эту традицию отделения логической обработки запросов от физических операций, чем обеспечивает повторное использование планов запросов и лучшую гибкости их обработки в большинстве практических применений...

Кэширование в SQLOS
Slava Oks
MSSQLServer: Эта статья рассказывает о том, как изменился механизм кэширования в SQL Server 2005...

Размер стека IA64
Slava Oks
MSSQLServer: Тема стека в операционной системе Windows всегда вызывает интерес. С ней связано много интересных технических проблем. В какие-то моменты Вы думаете, что полностью понимаете всё о стеке, но потом внезапно обнаруживаете ещё одну тайну. В течение последних нескольких недель ко мне обращались наши тестеры и служба поддержки с вопросом о том, сколько потоков они должны указать в конфигурации SQL Server на платформе IA64 с 4 Гб оперативной памяти. Например, они спрашивали, будет ли приемлемо установить число потоков равным 1024...

AWE и locked pages in memory на 64-х битной платформе
Slava Oks
MSSQLServer: Мы уже говорили о механизме Windows AWE на 32-х битной платформе и как SQL Server его использует. Сегодня я хотел бы пробежаться по AWE и связанным с ним механизмам на 64-х битной платформе...

Работа с пространствами имен XML данных
Сергей Шишкин's Blog
MSSQLServer: Предположим, что мы имеем коллекцию XML схем и привязанный к ней типизированный столбец XML данных в таблице. Необходимо выбрать из таблицы все документы, в которых объявлено определенное пространство имен. Это лишь один из примеров задач, для решения которых может потребоваться работа с пространствами имен XML данных. Простая на первый взгляд задача очевидным способом не решается...

Англоязычные статьи

Layout of Clustering algorithm content
DMTeam
This tip describes what each row represents in the content rowset returned by the Microsoft_Clustering algorithm for a trained model

Making SSIS a Clustered Service
Kirk Haselden
First of all, this blog entry is wholly the work of Ranjeeta Nanda and Nick Berezansky who are two of our top notch testers on the Integration Services team

SQL Server 2005 New Feature: INCLUDE clause for covering indexes
The SQL Doctor is In
A big cool little feature added for 2005 is included columns in an index. What it gives you is the ability to add columns to cover a query without including the columns in the index pages, causing overhead in the use of the index. Instead, the data is added to the leaf pages of the index

Data Portion and Used threshold
Muthusamy Anantha Kumar
When Database Administrators manage multiple databases on multiple servers, it is difficult to keep track of and monitor the used percentage of data portion on every database. Though SQL Server has the capability of auto growth whenever the data portion reaches 100%, it is always advisable to increase the database size manually when it comes to VLDB. This article examines monitoring the percentage used on the data portion of every database and alerting the DBA using threshold settings. This article has been written for SQL Server 2000 server

CASE statements
Chris Webb's BI Blog
One of the first things I noticed when I got hold of AS2005 for the first time, well over a year ago now, was that we now had a CASE statement in MDX. The joy! And yet it's one of those small improvements which so often gets ignored, so I thought I'd mention it. Here's an example

SQL Server Management Studio
Amit Lohia
After quite a few versions, Enterprise Manager is being retired. SQL Server 2005 will have a new management tool called the SQL Server Management Studio (SSMS). Amit Lohia brings us a first look at some of the features of this new tool.

Adding references to assemblies in the script task
Kirk Haselden
There is a limitation with the VSA architecture (VSA is Visual Studio for Applications) that makes it necessary to move assemblies to a certain folder in order to reference them in the script task. It's not sufficient to add a reference in the environment. You must move the assembly by copying it

How are association rules different from decision tree rules?
DMTeam
Rules describing your data can be discovered by both the Microsoft_Decision_Trees and Microsoft_Association_Rules algorithms - find out how and why they might differ. Similar to association rules, we can derive rules from a decision tree. A conjunction of split conditions on the path from the root to each node becomes the left-side of the rule and the classifier distribution becomes the right-side in the case of a decision tree. The rule representation of each tree is available from the model’s MINING_MODEL_CONTENT schema rowset (or through the "SELECT NODE_RULE FROM model.CONTENT" DMX query). Despite this similarity, it should be noted that decision trees rules can be quite different from association rules. The decision trees rules are based on information gain while association rules are based on popularity and/or confidence

Solution Guide for Migrating Oracle on UNIX to SQL Server on Windows
Scalability Experts
The Oracle on UNIX to SQL Server on Windows Migration Guide provides practical guidance on the processes and procedures to be followed while migrating from Oracle databases (versions 8i and later) on UNIX platforms to Microsoft® Windows® Server™ 2003 and Microsoft SQL Server™ 2000. This guide also presents strategies and procedural guidance to convert existing applications for use within the SQL Server 2000 and Microsoft Windows Server environment. This guide provides additional information and references to online resources about migrating other components of your application ecosystem, including the server and network infrastructure, development and test environment, and user accounts

Notes about using EXECUTE AS instead of SA
The SQL Doctor is In
Okay, so it has been a week since I demoted my only login on my laptop based test server down to just a mere shmoe. It is an interesting experiment and it has actually saved me from plopping down objects in my master database several times (I have a habit of just starting a create table statement whereever I am when I want to test some code.)

Just SQL Part I
James Koopmann
How many of you have asked yourself what SQL is all about anyway? Join me as I begin a venture down the road of understanding SQL and how to take advantage of this language

Test linked server connection settings...
SQL Server Engine Tips
Have you ever encountered a scenario in SQL Server 2000 where you want to test the connectivity of a linked server configuration via TSQL? This was not possible easily and best handled from client side. But we have now a system stored procedure "sp_testlinkedserver" in SQL Server 2005 that allows you to test linked server connection. This stored procedure takes a linked server name as parameter, tests the connectivity and returns 0 for success & 1 for failure. You can find more details about this stored procedure in the SQL Server 2005 Books Online. Here is how a sample call can look like

Week at Home and Two New T-SQL commands
Transact-SQL Blog
I have finished the design phase for the security class and am actually at home this week. I thought I would have two weeks at home but Solid Quality Learning was contacted to provide an emergency instructor for a SQL Server 2005 training class near London next week. There were several classes scheduled and the current instructor left after the first two days of the first week and Microsoft needed someone to fill in. I volunteered for the job and got lucky as originally, they wanted to have someone cover the three missing days this week but I got lucky and they changed their mind to just having a class next week. While I am still not crazy about giving up one of my two weeks back home before going back to Seattle for a two design phase on my next class. I figured that I would have most of August working from home and volunteered anyway

Worst Practices - Making Databases Case Sensitive (Or Anything Else)
Andy Warren
Article number four in this popular series continues exposing Worst Practices! This week Andy continues his tirade by talking about why case sensitive databases should be BANNED from the planet. Is he right or just OUT OF CONTROL? Read the article and join the discussion - your comment may lead to an article, that's what generated this one!

Globalization in SQL Server
Dinesh Asanka
SQL Server can support many different languages through Unicode. Author Dinesh Asanka brings us a basic article on how the server supports different languages

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Кто на чем пишет клиентов под SQL Server?
Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Новые упражнения на http://sql.ipps.ru
Префиксы типов таблиц(t_), хр. процедур(p_), функций(f_), вьюшек(v_)... Нафик они нужны?
Прошу голосовать за SQL.RU в конкурсе Интернить 2005
SQL Server Health and History Tool (SQLH2) Reports
Оптимизация запроса (создание индекса)
Непонятки с импортом из DBF в MSSQL
Отлов select
Как записать условие ?
Администраторы баз данных, защищайте свои сервера!
Соединение двух таблиц по неуникальным ключам
SP4 - делитесь опытом
И снова ADSI & LDAP. Помогите...
Сложный расчет разницы двух нарастающих итогов (расчет просрочки по платежам)
Прокомментируйте - ошибка при многопольз. работе возможна?
SQL Server2000 + SP4
Неправильно работает UPDATE в триггере. Без триггера - правильно
конкатенация в update не работает
Репликация ... или это вообще реально???

[В начало]

Вопросы остались без ответа

Microsoft to release SQL Server 2005 the week of November 7, 2005
функция возвращающая список заапдейтеннх столбцов в триггере
Результаты SET STATISTICS TIME не совпадают с времнем работы запроса
снова linked server
Сервер на MS SQL 2К прилинковать к серверу MS SQL 70?
xml data type в MS SQL 2005
COM resolver на VB
DTC - LINKED
xp_sendmail - приложение к письму

[В начало]


Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки

СЕМИНАРЫ  КОНФЕРЕНЦИИ

МИНИФОРМА
ПОДПИСКИ



ПУБЛИКАЦИИ  АРХИВ


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself
Отписаться
Вспомнить пароль

В избранное