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

MS SQL Server

  Все выпуски  

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


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


#189<<  #190

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.SQL Server 2000 DTS. Часть 12. Поддержка транзакций.
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.1.Новые и обновлённые технические статьи Microsoft
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.ПОЛЕЗНОСТИ
4.3.SQL Server 2000. Программирование. Часть 1
4.3.SQL Server 2000. Программирование. Часть 2

Репликация в Yukon & Анализ ERP-систем.

Дата: 07.04.2004г. 18:00
Место: г. Москва. Чапаевский пер., 14. Представительство Microsoft в России и СНГ.
Доклады:

1. Внутренняя реализация репликации в Юкон. Сердюк Владимир

  • Transactional publication
  • Transactional publication with updatable subscriptions
  • Merge publication

Обзор внутренних механизмов репликации в Юкон. Обзор реализации на уровне внутренних процедур.

  • Кодо - генерация репликационных объектов в Юкон.
  • Логика обновлений изменений.
  • Логика разрешения конфликтов.
  • Описание системных таблиц и внутренних процедур ответственных за репликацию.
  • Сравнение с SQL 8.0.

2. ERP - быть иль не быть? Анализ предпосылок внедрения ERP-системы с точки зрения потенциального потребителя. Андрей Гордиенко

    Сравниваются подходы российских и западных производителей средств автоматизации. Определяются точки приложения и ожидаемый эффект от внедрения. Разъясняется работа алгоритмов MRP и MRP-II. Дается определение методологии JIT (just-in-time), "канбан" и "такт", теории ограничений и др.

Для регистрации на семинар, пришлите письмо в свободной форме на адрес gladchenko@ sql . ru (пробелы нужно убрать), с указанием Вашей фамилии, имени и отчества.

Количество мест в аудитории семинара ограничено, поэтому прошу Вас не откладывать регистрацию.

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

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

Карта проезда в представительство Microsoft

СОВЕТЫ

SQL Server 2000 DTS. Часть 12. Поддержка транзакций.

По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 12 - Transactional Support

В заключительной статье этой серии мы обсудим поддержку транзакций в SQL Server 2000 Data Transformation Services. Транзакции в рамках DTS пакетов преследуют ту же самую цель, как и другие операции SQL Server - они отвечают требованиям ACID, что расшифровывается, как атомарность, последовательность, изоляция и продолжительность. Атомарность означает, что рассматриваемый в качестве транзакции модуль команд должен быть исполнен полностью или не должен выполняться вообще. Последовательность определяет состояние исходных данных. Изоляция определяет независимость исполняемых в рамках транзакции команд одного модуля от других. Продолжительность отражает постоянный статус изменений данных.
По умолчанию, каждая задача исполняется независимо от других в рамках одного DTS пакета (с точки зрения транзакций). Если происходит ошибка, выполнение текущей задачи прерывается. Несмотря на то, что Вы можете использовать параметры настройки из раздела Error handling на закладке Logging диалогового окна Package properties ("Fail package on the first error" - который определяет, будет ли в этот момент прервана работа всего пакета или управление исполнением будет передано другой задаче, имеющей соответствующую этой ошибке логику работы, например, запуск следующей задачи при успешном завершении, обработка ошибки или завершение работы пакета), никакой из представленных там двух методов не может повлиять на те операции, которые уже были исполнены до ошибки. Чтобы повлиять на предшествующие ошибке операции, Вы должны объявить все связанные единой логикой задачи, как входящие в одну транзакцию. Таким образом, Вы сможете гарантировать, что все они будут завершены успешно или будет выполнен откат к исходному состоянию, если произойдёт ошибка или сбой.
Однако, Вы должны помнить, что пакет может одновременно выполнять только одну транзакцию и что не каждый пакет может правильно отрабатывать транзакции. Ограничения существуют для некоторых типов подключений и задач, используемых в рамках пакета:

  • Подключения зависят от возможностей по поддержки транзакций, которыми обладает используемый для доступа к данным провайдер. Эта поддержка имеется у Microsoft OLE DB Provider for SQL Server, ODBC источников данных (если используемый ODBC драйвер имеет атрибут подключения SQL_ATT_ENLIST_IN_DTC и он был установлен) и Microsoft Data Link (если соответствующий OLE DB провайдер имеет интерфейс ITtransactionJoin). Более детальную информацию об этой теме Вы можете найти в документации по OLE DB и ODBC.
  • Задачи могут быть сгруппированы по трём категориям, основанным на присущих им уровнях поддержки транзакций. Первая категория состоит из задач, которые не пригодны в транзакциях из-за особенностей их работы, например, FTP, Dynamic Properties, Send Mail или Copy SQL Server Object tasks. Задачи второй категории (ActiveX Script и Execute Process) могут создать и управлять транзакциями внутри себя (как часть скрипта или процесса), но не могут участвовать в DTS транзакциях, использующих другие задачи. И, наконец, третья категория включает задачи, которые поддерживают транзакции полностью - Bulk Insert, Data Driven Query, Transform Data, Execute Package, Execute SQL и Message Queue.

Так как DTS при обработке своих транзакций использует Microsoft Distributed Transaction Coordinator (MS DTC), Вы должны убедиться, что служба MS DTC будет запущена до запуска пакета. Кроме того, стоит рассмотреть несколько возможных вариантов конфигурации, которые затрагивают транзакционное поведение пакета, и его задач (задачи представляют собой исполняемые модули, часто называемые шагами, если речь идёт о транзакциях в DTS):

  • "Use transactions" чек - бокс на закладке Advanced диалогового окна Package Properties должен быть включён, что бы пакет мог использовать внутренние транзакции. По умолчанию, эта опция включена.
  • "Commit on successful package completion" чек - бокс на закладке Advanced диалогового окна Package Properties. Эта опция завершит все открытые транзакции при завершении пакета. Это не всегда касается транзакций, которые уже завершены (как часть параметров задач).
  • Раскрывающийся список "Transaction isolation level", на закладке Advanced диалогового окна Package Properties, определяет (как Вы могли догадаться), уровень изоляции транзакций (который задаёт механизм блокировок) и может иметь одно из следующих значений:

    • "Read Committed" – параметр, используемый по умолчанию, который задаёт такой уровень изоляции транзакции, при котором изменения, вносимые другими параллельно выполняющимися транзакциями, не видимы до завершения.
    • "Read Uncommitted" - позволяет видеть в текущей транзакции не завершённые другими, параллельными транзакциями изменения.
    • "Repeatable Read" - гарантирует, что данные, получаемые текущей транзакцией, находятся в непротиворечивом состоянии до завершения транзакции.
    • "Serializable" - самый строгий уровень изоляции, гарантирующий полную независимость текущей транзакции (наиболее высокий уровень блокировки).
    • "Chaos" – похож на "Read Uncommitted" и разрешает видеть незавершённые изменения, но не блокирует изменения до завершения транзакции. Т.к. этот метод в SQL Server имеет серьёзный недостаток (нет возможности отката изменений), он используется редко.
    Менее строгие варианты (read uncommitted и chaos) повышают параллелизм (возможность одновременного исполнения нескольких транзакций) но и повышают вероятность противоречивых чтений (например, non-repeatable чтение, «грязное» чтение и фантомные чтения), в то время как для более строгих вариантов (read committed, repeatable read или serializable) это менее вероятно.
  • "Join transaction if present" чек - бокс на закладке Options диалогового окна Workflow Properties (доступного из контекстного меню задачи, после выбора опции Workflow -> Workflow Properties) предписывает включение задачи в транзакцию, которая уже исполняется, и не была ещё завершена. Иначе, исполнение этой задачи будет приводить к появлению новой транзакции.
  • "Commit transaction on successful completion of this step", этот чек – бокс, расположенный на закладке Options диалогового окна Workflow Properties, отмечает транзакцию, как завершённую, при успешном завершении задачи (предполагая, что на уровне пакета чек – бокс "Use transactions" был включён).
  • "Rollback transaction on failure" чек – бокс на закладке Options диалогового окна Workflow Properties, приводит к откату транзакции всякий раз, когда у задачи фиксируется сбой (и опять предполагаем, что на уровне пакета чек – бокс "Use transactions" был включён).

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

4;Speedy Gonzalez;(504)555-1234

Также, мы будем использовать таблицу Shippers базы данных Northwind. В начале, нужно создать текстовый файл (например, C:\Temp\Shippers.txt) и скопировать в него показанную выше строку. Далее, запустите DTS Designer и создайте в новом пакете подключение на основе Microsoft OLE DB Provider for SQL Server к базе данных Northwind. Из меню Task (или инструментальной панели с левой стороны) выберете задачу Bulk Insert Task и настройте её свойства, вписав описание (например, BULK INSERT Shippers), выбрав существующее подключение к Northwind из списка Existing connection, указав в качестве получателя данных таблицу Shippers, и определив C:\Temp\Shippers.txt в качестве нашего файла - источника данных. Убедитесь, что в качестве разделителя столбцов используется точка с запятой (Semicolon). Закройте диалоговое окно Bulk Insert Task Properties, нажмите правую кнопку мыши на значке задачи и выберите из контекстного меню опцию Workflow -> Workflow Properties. В диалоговом окне свойств Workflow переключитесь на закладку Options и выберите переключатель "Join transaction if present". Это приведёт к созданию новой транзакции при запуске задачи. Закройте это диалоговое окно. Создайте вторую задачу, выбрав из меню Task задачу Execute SQL Task. В диалоговом окне Task Properties введите описание (например, "INSERT ShipperID 1"), укажите Northwind в списка Existing connection, и введите следующий T-SQL запрос:

SET IDENTITY_INSERT Northwind.dbo.Shippers ON
GO
INSERT INTO Shippers (ShipperID, CompanyName, Phone)
VALUES (1, 'Road Runner', '(503) 555-4567')
GO
SET IDENTITY_INSERT Northwind.dbo.Shippers OFF
GO

Этот запрос будет пытаться создать дубль строк в таблице Shippers, что, разумеется, приведёт к ошибке. Так как мы планируем исполнять обе задачи в одной транзакции, изменения, внесённые BULK INSERT, будут откачены назад и содержание таблицы Shippers останется таким же, как и до исполнения пакета. Чтобы завершать настройку, перейдите в диалоговое окно Workflow Properties задачи Execute SQL Task, и включите переключатели "Join transaction if present" и "Rollback transaction on failure". После этого, подтвердите окончание настроек, нажав на кнопку OK. Из интерфейса DTS Designer, добавьте (workflow) элемент связи процессов "On Success" между задачами Execute SQL и Bulk Insert. Сохраните и исполните пакет. В диалоговом окне Executing DTS Package Вы должны увидеть процесс исполнения, показывающий успешное прохождение первой задачи и отказ второй. И, наконец, проверьте содержимое таблицы Shippers и убедитесь, что оно не изменилось.
Вы можете опробовать дополнительные варианты настройки (например, установив для первой задачи "Commit transaction on successful completion of this step"), чтобы продолжить исследование транзакционных возможностей, встроенных в DTS. Также, Вы можете обратиться к Books On Line для получения информации о более сложных настройках пакета, например, добавление в пакете контрольных точек транзакций, унаследованных транзакций или параллельного исполнения.
Эта статья является заключительной в кратком обзоре SQL Server 2000 Data Transformation Services, но автор собирается вернуться к этой теме при рассмотрении DTS Security, которое он планирует осветить в следующей серии статей, называемой SQL Server 2000 Security.

[В начало]

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

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

Ежегодный обзор рынка OLAP от Найджела Пендза: анализ потребителей
Найджел Пендз
OLAP: В этой и следующей статье рубрики рассказывается о результатах исследования OLAP Survey 3 (Третий обзор рынка OLAP). Как видно из его названия, это уже третий по счету обзор, что позволяет говорить о его достоинствах - опыте двух предыдущих исследований и возможности анализировать тенденции на рынке на основе накопленных за три года данных. На этот раз авторам исследования удалось накопить больший объем информации, а следовательно, провести расширенный анализ данных. Отчет шире по объему, чем два предыдущих, содержит больше таблиц, диаграмм, разделов и подразделов, а также анализирует больше продуктов. Такой обзор может быть интересен всем участникам рынка OLAP - покупателям, поставщикам, консультантам и инвесторам...
Использование деревьев решений для оценки кредитоспособности физических лиц
Сергей Ларин
В данной статье речь пойдет об одном из методов оценки риска при кредитовании физических лиц, основанного на применении технологии интеллектуального анализа данных (Data Mining). Можно привести давно всем известную цепочку связанных событий: чем меньше рискует банк при предоставлении кредита, тем меньше процентная ставка, предлагаемая этим банком; чем меньше процентная ставка, тем больше клиентов обратиться в именно этот банк; чем больше клиентов обратиться в банк, тем большую прибыль получит банк, а это одна из основных целей коммерческой деятельности. Риск, связанный с невозвратом суммы основного долга и процентов можно значительно снизить, оценивая вероятность возврата заемщиком кредита. Данная статья посвящена одному из ключевых моментов в кредитовании физических лиц – определению кредитоспособности потенциального заемщика

[В начало]

Новые и обновлённые технические статьи Microsoft

FIX: Performance of a query that is run from a client program on a SQL Server SP3 database is slow after you restart the instance of SQL Server
FIX: SQL Server 2000 may not start if many users try to log in to SQL Server when SQL Server is trying to start
FIX: The XML for Analysis Services Provider Result Set Does Not Contain the Hierarchy Name
TechNet Support WebCast:Performance troubleshooting and analysis in Microsoft SQL Server 2000
You may receive error message 8650 when you run a query that uses intra-query parallelism

[В начало]

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

Tame Those Strings - Using SUBSTRING
Steve Jones
I guess I could have called it "String Manipulation", but that was nowhere near as exciting as the other title. Often I find developers performing string manipulation in stored procedures and queries and chastise them for it. Using T-SQL is, IMHO, in general, a poor use of resources. Often the middle-tier or front-end can perform the manipulation where I think it is a better use of resources. After all, I can much more easily add another web server or app server box and cluster them than I can with another database server. Of course, SQL 2000 with the distributed partitioned views makes this easier, but still not easy
Attach and Detach..Again
Andy Warren
Attaching and detaching databases has got to be one of the handiest features in SQL7/2K. It worked well enough in SQL7, but SQL2K added a nice interface in Enterprise Manager to let you browse the file structure and pick the files you needed - a great time saver compared to typing in the file names into Query Analyzer. We've discussed this feature a couple of times here on the site already
How to move SQL Server from one computer/server/machine to another?
Narayana Vyas Kondreddi
Moving SQL Server from one computer to another is not a very difficult thing to do, but it often stumps newbie DBAs. Of course, it needs careful planning to ensure that the SQL Server is moved completely and properly to the new machine, and with a minimal downtime and no data loss. This article introduces you to a couple of methods you can employ to move/migrate SQL Server from one computer to another
SQLISAPI and XML Client-Side Processing (XML and SQL part 10)
Marcin Policht
Throughout the most recent articles of this series, we have been covering a range of new features introduced in SQLXML 2.0. We are continuing this trend by presenting the client-side XML processing
Measuring SQL Performance
Christoffer Hedgate
One thing that often amazes me is that many SQL Server developers do not actually measure the performance of their queries. When you are working with a small site or home project you might not see a big difference, but when implementing systems with large amounts of users and high levels of traffic you can not just settle with the fact that your query returns the expected result. You must also make sure that your queries use the least amount of resources and execute as quickly as possible. Sure, you can read articles and literature that describe how to write queries that perform well, but you can still not be sure that they work in an optimal way for your specific situation. After all, different schema designs, amounts of data, hardware resources etc all affect how a query performs. And one of the problems with SQL is that you can write the same query (i.e. that return the same results) in many different ways, and the performance of these different formulations will often differ as well. When I started investigating why some developers did not compare the performance of their queries it became clear to me that the main reason is that they do not know how to do this in an easy way. Many of them thought that you needed external tools, more or less complicated, to run against your server, and they did not have the time or inclination to learn and try these. This article will describe a couple of much easier methods of measuring performance of queries
Beginning ADO.NET
Murach
One of the strengths of Visual Studio .NET is its features for rapid application development, or prototyping. If, for example, you want to develop a Windows form that lets you maintain the data in one table of a database, you can usually do that in 20 minutes or less. This article will show you how
A Different Setup
Itzik Ben-Gan
Last month, in "Set Members and Relationships" (InstantDoc ID 38515), I presented a group of problems that dealt with identifying sets that have certain relationships with other sets. I mentioned that in relational algebra, the problems I discussed involve relational division. Using a common Orders-OrderDetails scenario, I showed how to find existing orders that had the same products as a new order entered into the system and other variations of the problem. I use these same scenarios again in this article's examples
Common security mistakes
Robert Westervelt
Carelessness with the most basic IT security procedures leaves vital information vulnerable to attack every day, according to information security expert Stephen Mencik
Help! My Database is Marked Suspect
Brian Knight
A database can be marked for many reasons. Generally it falls into the following conditions
Windows 2003 Supports Only SQL Server 2000 SP3 or Later
Various Authors
Microsoft's Windows Server 2003 product family doesn't support SQL Server 2000 Service Pack 2 (SP2) and earlier releases. When you install SQL Server 2000 SP2 or an earlier release on a computer running Windows Server 2003, you receive a warning message that the release isn't supported and instructions about where to find more information about the problem. According to Microsoft article "PRB: Windows Server 2003 Support for SQL Server 2000," you might also experience unexpected behavior. In addition, Windows 2003 doesn't support Microsoft SQL Server 2000 Desktop Edition (MSDE) SP2 and earlier or Analysis Services SP2 and earlier, but you don't receive a warning about them during installation. For more information about the problem and details about the solution, which is to upgrade to SQL Server 2000 SP3 or later, see http://support.microsoft.com/default.aspx?scid=kb;en-us;329329
Table Access During Index Build
Microsoft
This tip is one of a series from SQL Server Magazine. For additional tips, visit the SQL Server Tips and Tricks Center
The Great Delay
Michael Otey
At Tech Ed in June, Microsoft Senior Vice President Paul Flessner announced that the Yukon release of SQL Server—first expected late this year, then bumped to the first half of 2004—wouldn't be ready until the second half of next year. Microsoft product delays aren't noteworthy themselves; can you even remember a Microsoft product release that came out on time? But the company rarely announces a significant delay for a release that's still more than a year away

[В начало]

ФОРУМ SQL.RU

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

Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Кто на чем пишет клиентов под SQL Server?
Новые упражнения на http://sql.ipps.ru
Причины deadlock'а
Опять дерево...
отключение индекса
Задачка для гуру
Tablesize
Существует ли перевод "Books online" по MSSQL2000 ?
дата - дата = интервал
Уровни изоляции. Вопрос.
Индексы и Like (Часть вторая :) )
Создание БД и Windows NT auth.
Глюк с Having ?
Запрос то выполняется то не выполняется
убей двойника 2 (продолжение)
Помогите, не видно таблиц в ЕМ!
ГЛЮКИ при создании хранимых процедур !!!.
OFF: Скоко можно заработать на SQL?
Помогите разобраться!!!!!

[В начало]

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

не удается вернуть строку из ESP
sp_table_statistics_rowset does a lot of reads in trace. Does it required?
Прилинковка МДБ-файла к SQL Server
Переезд файлов и каталогов на новый диск
DTS + ActiveX Script Task
Нужна помощь по настройкам MS SQL
Оптимизация SQL запросов
OLEDB провайдер для SQL Server + Client Access + DLC-протокол. Не дружат???
Репликация
Доступк OLAP-серверу
Распределение нагрузки контроллеров
репликация слиянием - identity range
SQL CE
Вопрос к профи по репликации
Немогу получить ид добавленной записи...

[В начало]

ПОЛЕЗНОСТИ

SQL Server 2000. Программирование. Часть 1

Роберт Вьейра

Цена: 350 руб. ISBN: 5-94774-108-3, издательство "Бином. Лаборатория знаний". Серия: Programmer to Programmer. 2004 г. Твердый переплет, 736 стр. Тираж: 3000 экз., Формат: 74x100/16.

Книга представляет собой учебное и справочное пособие, включающее в себя обширное руководство по программированию на Transact-SQL, подробное описание новинок последней версии языка, в том числе индексированных представлений, определенных пользователем функций и средств поддержки XML, встроенных в SQL Server 2000. Всесторонне рассмотрены хранимые процедуры, триггеры, репликации, пересылка данных средствами DTS и bср. Особое внимание уделено вопросам безопасности и оптимизации. Для чтения книги не нужны предварительные знания о SQL Server, хотя базовые понятия программирования (переменные, типы данных, процедуры) должны быть вам знакомы. Книга рассматривает и вопросы администрирования, но лишь настолько, насколько это необходимо разработчику. Книга рассчитана на разработчиков приложений для SQL Server, которые хотят глубоко изучить новинки последней версии SQL Server 2000.

[В начало]

SQL Server 2000. Программирование. Часть 2

Роберт Вьейра

Цена: 350 руб. ISBN: 5-94774-115-6, издательство "Бином. Лаборатория знаний". Серия: Programmer to Programmer. 2004 г. Твердый переплет, 807 стр. Тираж: 3000 экз., Формат: 74x100/16.

Книга представляет собой учебное и справочное пособие, включающее в себя обширное руководство по программированию на Transact-SQL, подробное описание новинок последней версии языка, в том числе индексированных представлений, определенных пользователем функций и средств поддержки XML, встроенных в SQL Server 2000. Всесторонне рассмотрены хранимые процедуры, триггеры, репликации, пересылка данных средствами DTS и bcp. Особое внимание уделено вопросам безопасности и оптимизации. Для чтения книги не нужны предварительные знания о SQL Server, хотя базовые понятия программирования (переменные, типы данных, процедуры) должны быть вам знакомы. Книга рассматривает и вопросы администрирования, но лишь настолько, насколько это необходимо разработчику. Книга рассчитана на разработчиков приложений для SQL Server, которые хотят глубоко изучить нвинки последней версии SQL Server 2000.

[В начало]


Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру Гладченко на адрес: mssqlhelp@km.ru

sql.ru Описание рассылки

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




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное