Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

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


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

#256<<  #257

СОДЕРЖАНИЕ

1.СТАТЬИ
1.1.Основы I/O в SQL Server 2000 (окончание)
1.2.Степени параллелизма и степени неопределенности в Microsoft SQL Server
2.ССЫЛКИ НА СТАТЬИ
2.1.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.АНОНСЫ
4.1.Новый конкурс на GotDotNet.ru!

СТАТЬИ

Основы I/O в SQL Server 2000 (окончание)

По материалам статьи Bob Dorr: SQL Server 2000 I/O Basics
Перевод Александра Гладченко

Синхронный I/O

В SQL Server хорошо развиты возможности асинхронного I/O, что позволяет повысить утилизацию используемых им ресурсов. Служба поддержки SQL Server нашла решение для большинства проблем, порождаемых некоторыми промежуточными драйверами, мешавшими асинхронному I/O. Теперь от промежуточного драйвера требуется, чтобы запрос на I/O был завершён до того, как управление снова будет передано SQL Server.
Это легко реализуется, если контролировать длину очереди к дискам. Во время работы, SQL Server обычно использует несколько запросов на I/O. Когда I/O становится синхронным, очередь к дискам часто порождается одним большим запросом на I/O, а это порождает в SQL Server лишние блокировки.
Поскольку показания счётчика disk sec/transfer time не являются статичными, использовать его нужно учитывая этот факт. Когда на диск направляется не много запросов I/O, disk sec/transfer показывает хорошую скорость. Чем больше длина очереди к диску, тем больше разнообразие поведения disk sec/transfer. Однако, SQL Server умеет определять, что в результате асинхронного характера I/O, более длинные очереди к дискам и несколько большие значения disk sec/transfer могут в итоге способствовать повышению производительности и лучшему использованию ресурса.

[В начало]

Целостность данных

Когда в системе присутствуют промежуточные драйверы, они имеют прямой доступ к данным I/O. Поэтому, целостность данных может быть скомпрометирована не правильным поведением этих драйверов. Убедитесь, что ваши промежуточные драйверы совместимы с Microsoft SQL Server.
Важно: Если Вы наблюдаете проблемы со стабильностью I/O или его скоростью, служба поддержка Microsoft SQL Server может рекомендовать Вам отключить промежуточные драйверы, что бы проверить результаты работы без их влияния. Нужно помнить, что единственным надёжным способом отключения промежуточных драйверов является их деинсталляция.

[В начало]

Компрессия против криптования

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

Компрессия

Windows может сжимать расположенные на диске файлы, что позволяет экономить занимаемое ими место. Сжатие не поддерживается в SQL Server 2000 или его предыдущих версиях. Проблема в том, что когда используется сжатие, данные файла обрабатываются операционной системой большими кусками (например, во 64 Кб). Поэтому, когда SQL Server изменяет страницу данных в 8 Кб, в действительности система работает с большей порцией данных и перезаписывает её.
Такая перезапись данных является нарушением протокола WAL, потому что данные, уже сохранённые на диске будут перезаписаны, и таким образом нарушается правило порядка записи. Перезапись может приводить к кэшированию и другим, подобным действиям, которые не желательны для реализации в базе данных требований ACID. Перезапись также нарушает требования безопасности для границ секторов.
Все файлы журналов транзакций и баз данных SQL Server не должны подвергаться компрессии.

[В начало]

Изменение скорости

Компрессия может привести к тому, что производительность I/O станет узким местом. Служба поддержки Microsoft SQL Server регистрировала возникновение серьезных проблем с I/O, о которых сообщали клиенты, пытавшиеся использовать компрессию. В одном из таких случаев, синхронизация контрольной точки при сбросе на всего нескольких тысяч буферов возросла от нескольких секунд до минут. Объём работы, требуемый для обслуживания компрессии не только повышает нагрузку на систему, но и увеличивает время кратких блокировок, накладываемых до завершения I/O, что негативно сказывается на весь SQL Server.

[В начало]

Базы данных в режиме - только для чтения

Microsoft SQL Server 2000 не рассчитан на то, что находящиеся в режиме только чтения базы данных будут компрессованными.
Поскольку оптимизатор SQL Server 2000 при формировании планов исполнения запросов ничего не знает о компрессии файлов, компрессованные файлы могут спровоцировать увеличение времени исполнения запроса, относительно ожидаемого. Например, если согласно плану исполнения ожидается чтение только одной страницы, на самом деле, каждое чтение потребует извлечения из копрессованного файла отдельных его кусков для распаковки. Если бы оптимизатор знал о компрессии файла, он мог бы изменить план, чтобы увеличить долю упреждающего чтения или пересмотрел бы планируемые операции выборки данных так, что бы компрессия выполнялась бы меньшее число раз.
Важно: База данных tempdb никогда не должна подвергаться компрессии, потому что даже если пользовательская база данных используется в режиме только чтения, объекты для поддержки запроса могут создаваться в tempdb.
В следующих версиях Microsoft SQL Server, для находящихся в режиме только для чтения баз, будет введена поддержка компрессии файлов.

[В начало]

Криптование

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

[В начало]

Файл подкачки и листание

Служба поддержки Microsoft SQL Server сталкивалась в своей работе с такими аппаратными средствами, которые не были хорошо приспособлены к листанию и необходимым действиям с файлом подкачки, например, упорядочивание записи. SQL Server старается минимизировать листание, сокращая по возможности его объём. Однако, оно всё ещё может проявляться для связанной с SQL Server памяти процесса, который сбрасывает страницы. Подобно механизмам режимов ожидания и пониженного энергопотребления, листание задействует другие дисковые устройства; и эти устройства, хотя они и не используются непосредственно в SQL Server, для обеспечения гарантии целостности данных должны также быть с точки зрения I/O совместимы с Microsoft SQL Server.
Во время листания, становится труднее обеспечить целостность находящихся в оперативной памяти данных. Следующие версии SQL Server могут комбинировать методы принудительных кратких блокировок с отслеживанием контрольных сумм в оперативной памяти, что обеспечивает лучшую защиту от вызванных листанием проблем. Однако, постоянная проверка контрольных сумм страниц существенно повысит нагрузку на SQL Server.
Важно: Для SQL Server существует рекомендация Microsoft о том, что бы файл подкачки размещался на устройстве, которое соответствует требованиям Microsoft к I/O для SQL Server.

[В начало]

Флаг трассировки -T815

Для облегчения обнаружения нежелательных изменений страниц данных в оперативной памяти, для SQL Server вводиться флаг трассировки -T815, которые расширяет возможности принудительных кратких блокировок. Когда для внесения изменений на страницу накладывается краткая блокировка, VirtualProtect страницы устанавливается в PAGE_READWRITE. В остальное время уровень её защиты будет - PAGE_READONLY. Это помогает перехватывать такие операции в памяти, как наложенная запись (scribblers).
Начиная с версии Microsoft SQL Server 2000 v. 8.00.0922, появилась возможность динамического переключения флага трассировки -T815, с использованием инструкций Transact-SQL: DBCC TRACEON и DBCC TRACEOFF.
Важно: Принудительные краткие блокировки допустимы только для тех систем, которые не используют AWE (Address Windowing Extensions) режимы.

[В начало]

Онлайновые копии файлов

Некоторые аппаратные средства резервирования от третьих фирм предоставляют возможность создания резервных копий открытых каким - либо ПО файлов, путём их отражения на аппаратном уровне. Поскольку SQL Server монопольно открывает все свои файлы баз данных и журналов, такое отражение возможно только на уровне промежуточных драйверов или на аппаратном уровне.
Типичной проблемой подобных решений является то, что они не поддерживают порядок меток времени для подобных снимков файлов. Данные копируются в то время, когда SQL Server всё ещё продолжает работу, а это может нарушить порядок записи и семантику меток времени, и привести к невозможности восстановления файлов баз данных.
Некоторые производители таких аппаратных средств реализуют в своих системах возможности создания правильных снимков, для чего используется документированная объектная модель SQL Server Virtual Device Interface (VDI). Это единственный безопасный способ фиксировать I/O с соблюдением меток времени для всех используемых файлов баз данных.

[В начало]

Повторяющееся чтение

Повторяющееся чтение поддерживается в Microsoft SQL Server 2000 только для операций сортировки. В следующих версиях SQL Server может появиться повторяющееся чтение и для других операций I/O.
Служба поддержка Microsoft SQL Server сталкивалась с проблемами, связанными с повторяющимся чтением. В некоторых системах фиксировалось чтение не корректных данных. Логика сортировки в SQL Server может порождать чтение тех же данных (повторяющееся чтение), и при последнем чтении данные считываются правильными. Поскольку данные должны возвращаться правильными и при первом чтении, это указывает на проблемы с хранилищем.
Предупреждение: Если ваша система не показывает признаки успешного повторяющегося чтения, это нужно рассмотреть, как серьёзный повод для беспокойства.

[В начало]

DBCC с опцией REPAIR

Когда происходят сбои операций I/O, считается общепринятым чаще выполнять проверку согласованности базы данных. Это помогает получить больше подробностей о степени серьёзности проблем и затрагиваемых ими участков данных.
Предупреждение: Не стоит злоупотреблять DBCC REPAIR, для исправления проблем данных. Любые их нарушения, и особенно постоянные, повторяющиеся искажения, являются симптомами более глубоких проблем, и часто связанных с используемыми долговременными носителями.

Утилиты

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

SQLIOStress.exe

SQLIOStress.exe моделирует разные схемы поведения I/O в SQL Server 2000, что позволяет проверить безопасность I/O на самом простом уровне.
Утилита SQLIOStress может быть загружена с сайта Microsoft. Ниже, представлена ссылка на статью с её описанием.

Важно: Загружаемый дистрибутив содержит подробное описание этой утилиты.

SQLIO.exe

SQLIO.exe - это утилита эталонного тестирования I/O для SQL Server 2000. Она также может быть загружена с сайта Microsoft.

[В начало]

Заключение

Правильные настройка и обслуживание подсистемы I/O являются критически - важным фактором успешного развертывания SQL Server. Понимание того, как SQL Server исполняет операции I/O с файлами журналов транзакций и баз данных, поможет Вам лучше оптимизировать подсистему ввода - вывода. Выбирайте только такие дисковые подсистемы, которые в полной мере поддерживают протокол WAL, позволяя этим SQL Server обеспечивать требования ACID.

Полезные ссылки

iSCSI

Network / NAS Storage

[В начало]

Степени параллелизма и степени неопределенности в Microsoft SQL Server

По материалам статьи в Mat Stephen's WebLog: Microsoft SQL Server Performance Top Tip: Degrees of Parallelism and a Degree of Uncertainty
Перевод Александра Гладченко

Max degree of parallelism (DOP) - дополнительна опция конфигурации SQL Server, с которой связано много вопросов и которой посвящено множество публикаций. В этой статье своего блога, автор надеется внести немного ясности в то, что эта опция делает и как её нужно использовать.
Во-первых, автор хотел бы рассеять любые сомнения по поводу того, что указанная опция устанавливает, сколько процессоров может использовать SQL Server при обслуживании нескольких подключений (или пользователей) - это не так! Если SQL Server имеет доступ к четырем неактивным процессорам, и он настроен на использование всех четырёх процессоров, он будет использовать все четыре процессора, независимо от максимальной степени параллелизма.
Так, что же эта опция даёт? Эта опция устанавливает максимальное число процессоров, которые SQL Server может использовать для одного запроса. Если запрос к SQL Server должен вернуть большой объём данных (много записей), его иногда имеет смысл распараллелить, разбив на несколько маленьких запросов, каждый из которых будет возвращать своё подмножество строк. Таким образом, SQL Server может использовать несколько процессоров, и, следовательно, на многопроцессорных системах большое количество записей всего запроса потенциально может быть возвращено быстрее, чем на однопроцессорной системе.
Есть множество критериев, которые должны быть учтены до того, как SQL Server вызовет "Intra Query Parallelism" (разбивку запроса на несколько потоков), и нет смысла их здесь детализировать. Вы можете найти их в BOL, поискав фразу "Degree of parallelism". Там написано, что решение о распараллеливании основано на доступности памяти процессору и, особенно, на доступности самих процессоров.
Итак, почему мы должны продумать использование этой опции - потому что, оставляя её в значении по умолчанию (SQL Server сам принимает решение о распараллеливании), иногда можно получить нежелательные эффекты. Эти эффекты выглядят примерно так:

  • Распараллеленные запросы выполняются медленнее.

  • Время исполнения запросов может стать недетерминированным, и это может раздражить пользователей. Время исполнения может измениться потому что:

    • Запрос может иногда распараллеливаться, а иногда нет.

    • Запрос может блокироваться параллельным запросом, если перед этим процессоры были перегружены работой.

Прежде, чем мы продолжим, автор хотел бы заметить, что нет особой необходимости погружаться во внутреннюю организацию параллелизма. Если же Вы этим интересуетесь, Вы можете почитать статью "Parallel Query Processing" в Books on Line, в которой эта информация изложена более детально. Автор считает, что есть только две важные вещи, которые стоит знать о внутренней организации параллелизма:

  1. Параллельные запросы могут породить больше потоков, чем указано в опции "Max degree of parallelism". DOP 4 может породить более двенадцати потоков, четыре для запроса и дополнительные потоки, используемые для сортировок, потоков, агрегатов и сборок и т.д.

  2. Распараллеливание запросов может провоцировать разные SPID ожидать с типом ожидания CXPACKET или 0X0200. Этим можно воспользоваться для того, что бы найти те SPID, которые находятся в состоянии ожидания при параллельных операциях, и имеют в sysprocesses waittype: CXPACKET. Для облегчения этой задачи, автор предлагает воспользоваться имеющейся в его блоге хранимой процедурой: track_waitstats.

И так "Запрос может выполняться медленнее при распараллеливании" почему?

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

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

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

Из всего этого следует рекомендация проверять исполнение запроса без параллелизма (DOP=1), это поможет идентифицировать возможные проблемы.
Упомянутые выше эффекты параллелизма, сами собой должны навести Вас на мысль о том, что внутренняя механика распараллеливания запросов не подходит для применения в OLTP - приложениях. Это такие приложения, для которых изменение времени исполнения запроса может раздражать пользователей и для которых сервер, одновременно обслуживающий множество пользователей, вряд ли выберет параллельный план исполнения из-за присущих этим приложениям особенностей профиля рабочей нагрузки процессора.
Поэтому, если Вы собираетесь использовать параллелизм, то, скорее всего это понадобится, для задач извлечения данных (data warehouse), поддержки принятия решений или отчётных систем, где не много запросов, но они являются достаточно тяжёлыми и исполняются на мощном сервере с большим объёмом оперативной памяти.
Если Вы решили использовать параллелизм, какое же значение нужно установить для DOP?. Хорошей практикой для этого механизма является то, что если Вы имеете 8 процессоров, тогда устанавливайте DOP = 4, и это с большой степенью вероятности будет оптимальной установкой. Однако, нет никаких гарантий, что так оно и будет работать. Единственный способ убедиться в этом - протестировать разные значения для DOP. В дополнение к этому, автор хотел предложить свой, основанный на эмпирических наблюдениях совет, никогда не устанавливать это число больше, чем половине от числа процессоров, которые есть в наличии. Если бы автор имел процессоров меньше шести, он установил бы DOP в 1, что просто запрещает распараллеливание. Он мог бы сделать исключение, если бы имел базу данных, которая поддерживает процесс только одного пользователя (некоторые технологии извлечения данных или задачи отчётности), в этом случае, в порядке исключения, можно будет установить DOP в 0 (значение по умолчанию), которое позволяет SQL Server самому принимать решение о необходимости распараллеливания запроса.
Прежде, чем закончить статью, автор хотел предостеречь Вас по поводу того, что параллельное создание индексов зависит от числа, которое Вы устанавливаете для DOP. Это означает, что Вы можете захотеть изменять его на время создания или пересоздания индексов, чтобы повысить производительность этой операции, и, конечно же, Вы можете использовать в запросе хинт MAXDOP, который позволяет игнорировать установленное в конфигурации значение и может быть использован в часы минимальной нагрузки.
Наконец, ваш запрос может замедляться при распараллеливании из-за ошибок, поэтому убедитесь, что на вашем сервере установлен последний сервисный пакет (service pack).

CREATE proc track_waitstats
          (
            @num_samples int=10
           ,@delaynum int=1
           ,@delaytype nvarchar(10)='minutes'
          )
AS
-- T. Davidson
-- This stored procedure is provided =AS IS= with no warranties, 
-- and confers no rights. 
-- Use of included script samples are subject to the terms 
-- specified at http://www.microsoft.com/info/cpyright.htm
-- @num_samples is the number of times to capture waitstats, 
-- default is 10 times.  default delay interval is 1 minute
-- delaynum is the delay interval.  delaytype specifies whether 
-- the delay interval is minutes or seconds
-- create waitstats table if it does not exist, otherwise truncate

set nocount on
if not exists (select 1 from sysobjects where name = 'waitstats')
           create table waitstats ([wait type] varchar(80), 
                        requests numeric(20,1),
                        [wait time] numeric (20,1),
                        [signal wait time] numeric(20,1),
                        now datetime default getdate())
else       truncate table waitstats

dbcc sqlperf (waitstats,clear)  -- clear out waitstats

declare @i int
       ,@delay varchar(8)
       ,@dt varchar(3)
       ,@now datetime
       ,@totalwait numeric(20,1)
       ,@endtime datetime
       ,@begintime datetime
       ,@hr int
       ,@min int
       ,@sec int

select @i = 1
select @dt = case lower(@delaytype)
            when 'minutes' then 'm'
            when 'minute' then 'm'
            when 'min' then 'm'
            when 'mm' then 'm'
            when 'mi' then 'm'
            when 'm' then 'm'
            when 'seconds' then 's'
            when 'second' then 's'
            when 'sec' then 's'
            when 'ss' then 's'
            when 's' then 's'
            else @delaytype
end

if @dt not in ('s','m')
begin
            print 'please supply delay type e.g. seconds or minutes'
            return
end

if @dt = 's'
begin
            select @sec = @delaynum % 60
            select @min = cast((@delaynum / 60) as int)
            select @hr = cast((@min / 60) as int)
            select @min = @min % 60
end

if @dt = 'm'
begin
            select @sec = 0
            select @min = @delaynum % 60
            select @hr = cast((@delaynum / 60) as int)
end

select @delay = right('0'+ convert(varchar(2),@hr),2) + ':' + 
              + right('0'+convert(varchar(2),@min),2) + ':' + 
              + right('0'+convert(varchar(2),@sec),2)

if @hr > 23 or @min > 59 or @sec > 59
begin
            select 'hh:mm:ss delay time cannot > 23:59:59'
            select 'delay interval and type: ' + convert (varchar(10)
                   ,@delaynum) + ',' + @delaytype + ' converts to ' 
                   + @delay
            return
end

while (@i <= @num_samples)
begin
            insert into waitstats ([wait type], requests, [wait time]
            ,[signal wait time])    
            exec ('dbcc sqlperf(waitstats)')
            select @i = @i + 1
            waitfor delay @delay
End

--- create waitstats report
execute get_waitstats

--//--//--//--//--//--//--//--//--//-//--//--//--//--//--//--//--//--/ 

CREATE proc get_waitstats
AS
-- This stored procedure is provided =AS IS= with no warranties, and 
-- confers no rights. 
-- Use of included script samples are subject to the terms specified 
-- at http://www.microsoft.com/info/cpyright.htm
--
-- this proc will create waitstats report listing wait types by 
-- percentage
-- can be run when track_waitstats is executing

set nocount on

declare @now datetime
       ,@totalwait numeric(20,1)
       ,@endtime datetime
       ,@begintime datetime
       ,@hr int
       ,@min int
       ,@sec int

select  @now=max(now),@begintime=min(now),@endtime=max(now)
from waitstats where [wait type] = 'Total'

--- subtract waitfor, sleep, and resource_queue from Total

select @totalwait = sum([wait time]) + 1 from waitstats 
where [wait type] not in ('WAITFOR','SLEEP','RESOURCE_QUEUE'
                          , 'Total', '***total***') and now = @now

-- insert adjusted totals, rank by percentage descending

delete waitstats where [wait type] = '***total***' and now = @now

insert into waitstats select '***total***'
                             ,0 
                             ,@totalwait
                             ,@totalwait
                             ,@now 

select [wait type]
      ,[wait time]
      ,percentage = cast (100*[wait time]/@totalwait as numeric(20,1))
from waitstats 
where [wait type] not in ('WAITFOR','SLEEP','RESOURCE_QUEUE','Total')
and now = @now
order by percentage desc

[В начало]

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

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

Returning Results from Multiple Models in a Single DMX Query
DMTeam
This tip shows how to query multiple models at the same time and how to chain results from one query to another

An interview with Wally McClure
Douglas Reilly
Wally McClure’s down-to-earth, approachable name suits him well. I can’t think of him as the more formal Wallace, although that is his given name

ENTERPRISE METADATA FRAMEWORK
R. Todd Stephens
Over the past few years, I’ve had the opportunity to discuss enterprise metadata to a wide variety of audiences and much of this conversation is captured in this “Best Practices” implementation framework. The model has evolved over the past few years as our program continues to do the same. Of course, this summary can only be a few pages long so the depth of the content here will be a tad shallow but you should be able to get the basics from the diagram and the description that follows. Figure 1 provides the new framework and the content follows to describe each section

Indexed Views With Outer Joins
Jean Charles Bulinckx
SQL Server 2000 has indexed views, which can greatly improve database performance. However there are a number of restrictions on building the view, including the restriction against outer joins. So how can this work? New author Jean Charles Bulinckx brings us a technique that can help you get around this restriction

How to use results from one stored procedure in another
Andrew Novick
I've written a stored procedure for use in a Crystal Report. It works great. I would also like to use the results from this stored procedure in another stored procedure. How do I do this?

Out parameters in the Execute SQL Task...
Kirk Haselden
One of the more strident complaints we've been receiving is the fact that the SQL Task didn't support out parameters on stored procedures. We listened

Dig Me Out
Direct Reports
Chris hasn't gotten a chance to update his Sleazy Hacks Weblog so I thought I would post this in the meantime

Dynamic Grouping
Chris Hays's Reporting Services Sleazy Hacks Weblog
Question:How can I give my users the ability to dynamically select fields on which to group within a report?

Horizontal Tables
Chris Hays's Reporting Services Sleazy Hacks Weblog
Question: Does Reporting Services support horizontal tables (fixed rows and dynamic columns)?

"All" Parameter Value
Chris Hays's Reporting Services Sleazy Hacks Weblog
Question: How can I enable users to select "All" as the value of a query parameter?

Green-Bar Matrix
Chris Hays's Reporting Services Sleazy Hacks Weblog
Question: How can I get a green-bar effect (alternating colors) in a matrix?

Centered Images
Chris Hays's Reporting Services Sleazy Hacks Weblog
Question: I have variable sized images I want to display in a table column. How can I center these images without stretching them to fill the table cell?

Does ADO.NET update batching really do something?
DataWorks WebLog
I’ve gotten this same question several times in the last few weeks, so I thought it would be a good idea to put together some details on the topic. Update batching is a new ADO.NET 2.0 feature that, when enabled, introduces an optimization to the process of executing a DataAdapter.Update call (which basically takes the changes from a DataTable and pushes them into a database using the INSERT/UPDATE/DELETE commands)

Running auctions on SQL Server 2005
Write Ahead Blog
We studied auctions in our e-commerce and AI classes at U of M. In one of our assignments we were asked to configure an agent that played the Trading Agent Competition (TAC) which involved a variety of auctions for buying or trading airline tickets, hotel reservations and entertainment tickets. The agents participating in the competition talked to the auction server using a binary TCP protocol. In the real world, the protocol would require to have reliability and security and the app would require to scale to thousands of agents trading at any given time

Full Customized Reusable ASP+ Vertical/Horizontal Marquee () Consuming XML/MSSQL.
Egyptian Physicist
Vertical/Horizontal Marquee Web Custom Control Consuming SQLServerDB/XML, With Great Design Time Attributes.

"> Perfect From Now On
Direct Reports
While the legend built into Reporting Services charts is relatively easy to use, it lacks some of the flexibility that you might like to have. One issue is that it takes up space within the chart boundaries, making the plot area smaller as the number of series grows. So how can you get more control over the legend? Roll your own!

Regular Expressions in T-SQL, Part II
Ken Henderson's WebLog
I've gotten quite a bit of mail from people re: my recent post about regular expression searches in T-SQL. This was actually covered in my last book, so I've been surprised at how many people were unaware that the tools needed to do this were right under their noses. (You mean you haven't read every book I've ever written cover-to-cover?! I'm shocked! Stunned! Aghast!) Today, I'll elaborate a bit more on what I've said before on the subject

Managing scheduled async SQL Server tasks
Write Ahead Blog
DBAs often struggle with setting up automated tasks for managing databases such as taking backups, maintaining warehouses, re-building indexes and generating scheduled reports just to mention a few. While Service Broker is seen mostly as a framework for developers to build reliable messaging applications, it can be used very well by DBAs for doing routine maintenance jobs asychronously. Roger Wolter's recent article on Microsoft TechNet Magazine (Spring 2005) talks about a simple batch scheduling system built using Service Broker. You can access it here

Async Lifestyle: Manage Your Tasks With Service Broker
Roger Wolter
Most of the articles written about SQL Server 2005 Service Broker talk about its capabilities as a messaging infrastructure and as a platform for building reliable database applications

Announcing the MDAC 2.8 sp1 Redistributable [Brad Rhodes]
DataWorks WebLog
We have shipped MDAC 2.8 sp1. This is the version of MDAC that originally shipped with Windows XP sp2. It is also the version of MDAC that is included in SQL Server 2000 sp4

SQL Server Integration Services - Thinking Outside of the DTS Box - Presentation
Level Beginner
The slides and demos from "SQL Server Integration Services - Thinking Outside of the DTS Box", as presented at the 2005 PASS European Conference, available for download. Thank you to those who attended

Understanding dimensions in an OLAP solution
Arthur Fuller
Discover why it's important to have a clear grasp of what dimensions are and how they're used in an OLAP solution

Find a partial string in a field that contains a big long string
Jeremy Kadlec
I am trying to find a partial string in a field that contains a big long string. For example, SELECT a.* WHERE (a.Status LIKE "%|x|%") The above example works great, except for one thing, the "x" is not case sensitive and that is an issue. Any quick ideas?

Portable DTS Packages
Kevin Feit
Have you ever faced the situation where you have needed to move a DTS package you needed to move a DTS package from one server to another, say from development to production? In this article by Kevin Feit, he shows you how to make a DTS package portable and save time

TACKLING DATA MODELERS' TOUGHEST CHALLENGE
Graeme Simsion
Recently, I began a Data Modeling “Master Class” by asking participants to nominate the toughest challenges facing them in their professional work. Virtually all the responses were about “soft” or “political” issues: persuading project teams to include a data modeling phase, negotiating territory with database technicians, gaining access to business people, and, of course, staying employed. No mention of normalization, star schemas, time-dependent data, exploiting new DBMS features, choice of language or indeed anything remotely technical

Painless Backup and Recovery of Databases: The Storage-Layer Technology Cure for Business
Phil Brotherton
Backups that bump into business hours, failed restores that keep customers waiting and sluggish performance that drives users and database administrators (DBAs) to the brink - just a few of the ailments businesses suffer as corporate databases swell to record size. Managing growing stores of mission-critical data has conventionally forced uncomfortable trade-offs among requirements for database availability, recoverability and performance. Improve on one and suffer a setback in another

What is starting to amaze me...
The SQL Doctor is In
Is that there are tons of tiny new features that I have not even heard of yet. I have been to several pre-conferences, heard more hype than should even be possible, but I still find very useful features to add to my list of cool new features in SQL Server 2005

Executing SQL Statements in VBA Code
Danny Lesandrini
There are a number of ways to execute a SQL Data Manipulation Language (DML) statement from Microsoft Access, besides the obvious process of creating an Action Query and double-clicking its icon. Understanding your options with respect to executing SQL will make your code cleaner, give you more flexibility and we'll even throw in a great debugging feature as an added bonus

SQL Server I/O: Remote Queries
Buck Woody
Sometimes the data you're after isn't in your database. Sometimes it isn't on your server. Sometimes it isn't even on SQL Server at all

SQL Server 2000 Reporting Services Activation Process
Matthew Hofacker,Brian Hartman
SQL Server 2000 Reporting Services uses cryptography to protect account data. Learn how SQL Server 2000 Reporting Services generates and stores the keys required to encrypt data

Transfering Data Oracle Data To And From SQL Server
Mat Stephen's WebLog
This post is for two purposes: firstly to point to a comprehensive blog post covering the transfer of data between Oracle and SQL Server using SQL Server 2005 Integration Services - which answers a recuring question from customers and partners with insight, accuracy and the most cherished of properties - honesty

Random 2005 new feature: things that start with ALTER
The SQL Doctor is In
The other day I mentioned that I was looking for the alter database command, and I noticed several commands that started with the word ALTER that I hadn't seen before. ALTER INDEX and ALTER SERVICE. Curious, I hit the books, books online that is, and decided to look at and see what was up with new stuff starting with the word ALTER

A Second Look at SQL Server 2005 for Developers
Bob Beauchemin's Blog
I've heard rumblings on various newsgroups that our book “A First Look at SQL Server 2005 for Developers” is getting a little long in the tooth in some topics. Features got postponed in the client area, some syntax changed, the managed providers were combined, and so forth. I've been reporting on changes via this blog and also have been trying to keep a running scorecard of changes on the book's website. This should be updated more for the next CTP or so; I've been waiting for official beta3

XML Simplified
Raj Vasant
XML . . . what a word it has been. Nobody imagined that a technology will break through all the frontiers and inject itself in all the fields with great success. XML has been the front runner for providing easy and secure mode for data transfer, data storage and data manipulation. All the major applications these days including various web groups are also going for XML. Blogs using RSS are the new trends these days which are provided by the websites. These are nothing but an extension to XML

DATA STRATEGY INTRODUCTION
Sid Adelman
This is an excerpt from Data Strategy by Sid Adelman, Larissa Moss and Majid Abai, published by Addison Wesley. The book should be available in early July, 2005

[В начало]

ФОРУМ SQL.RU

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

Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Задай вопрос разработчику MsSQL!
Баг в [ORDER BY] на который MSSQL закрыл глаза
Прошу голосовать за SQL.RU в конкурсе Интернить 2005
Как отследить ссылки на процедуру из других процедур?
Dynamic cursor
Дедлок. U vs X
Импорт данных из MS Excel
Проблема с линкованием сервером! Выдает: Login failed for user '(null)' :(((
две таблицы из одной
Знает ли процедура собственное имя?
I Need Help! XEON+MsSQL2000
Как заблокировать одну запись в таблице?
Распределение ресурсов
Задачка по SQL :)
Вопрос по переходу с версионника Oracle на блокировочник MS SQL Srv
Extended Procedure
Что не так в скрипте?
Хитрое ограничение
Информация к размышлению

[В начало]

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

Ошибка при установке MSSQL 2000 поверх MSSQL 7
cursor & table variable
Русификация инсталяций для msde2000
share registration information. Не совсем работает
Проблемы с Reporting Services
Небольшой трабл после установки SP4
хэш-доступ к данным

[В начало]

АНОНСЫ

Новый конкурс на GotDotNet.ru!

По традиции в мае GotDotNet.ru проводит новый конкурс. В прошлом мае это был конкурс на знание Visual Basic.NET, главным призом в котором был автомобиль. В новом конкурсе такого большого главного приза не будет, зато будет огромное число призов, но поменьше. А именно - призами в конкурсе будут коробки Visual Studio .NET 2003 Professional Special Edition и Visual Basic .NET 2003 Standard Russian.
Предстоящий конкурс будет уникален! И его уникальность заключается в том, что приз получат все участники конкурса и сразу, а не по окончании конкурса. Подробно условия конкурса будут опубликованы в разделе конкурса на сайте, который появится в ближайшее время. Для участия в конкурсе необходимо подать заявку на участие, выбрав номинацию для участия. Предварительный список номинаций состоит из двух категорий:

  • Полезные инструменты, библиотеки и шаблоны для разработчиков (призы за участие: Visual Studio .NET 2003 Professional Special Edition).
    В эту категорию входят любые полезные инструменты, библиотеки, компоненты и шаблоны, которые могут быть использованы при разработке приложений на базе Microsoft .NET.

  • Полезные программы для домашнего хозяйства (Visual Basic .NET 2003 Standard Russian).
    В эту категорию входят настольные (Windows) приложения, работающие на базе Microsoft .NET, которые могут быть полезны для автоматизации самых разных проблем и задач, которые возникают в домашнем хозяйстве и в решении которых может помочь домашний компьютер

Обязательным условием для предоставленных на конкурс приложений является использованием ими платформы Microsoft .NET. При этом приложение может работать как локально, так и использовать сетевые соединения (p2p либо выделенный сервер, который должен быть в этом случае построен на технологии ASP.NET Web Services).

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

Для участия в конкурсе необходимо будет:

  1. Зарегистрироваться на сайте GotDotNet.ru.

  2. Принять условия конкурса. Основным условием участия является обязательство предоставить приложение или компонент для разработчика в течение указанного периода времени (до 1 августа 2005 года для приложений и до 1 сентября 2005 года для компонентов разработчика).

  3. Заполнить анкету участника.

  4. Разместить заявку на участие в конкурсе с описанием того, что будет предоставлено на конкурс.

В конкурсе участвуют индивидуальные разработчики. Приз (лицензия на Visual Studio .NET 2003 Professional Special Edition и Visual Basic .NET 2003 Standard Russian) выдается участнику конкурса для личного использования. От каждого участника конкурса принимается не более 1 предложения в каждой категории.

После размещения заявки на участие она выставляется на всеобщее обсуждение и оценку. Авторы предложений, набравшие наибольшее число баллов до 15 июня 2005 года получают приз за заявку. Участники, получившие приз, но не предоставившие приложение или компонент разработчика в указанный период времени, будут помещены на специальную страницу сайта ("доску позора"), откуда они будут убраны только после предоставления результата работы.

По результатам конкурса авторы лучших работ будут дополнительно награждены призами, список которых будет определен позднее. Лучшие работы будут помещены на диск, который будет распространяться по подписчикам MSDN, а также распространяться вместе с журналами (список будет определен дополнительно).

Раздел конкурса находится по адресу http://contest2005.gotdotnet.ru/

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

[В начало]


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

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

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



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


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

В избранное