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

MS SQL Server

  Все выпуски  

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


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


#097<<  #098

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.XML в MS SQL Server 2000 и технологиях доступа к данным
1.1.1.Введение
1.1.2.Сохранить как XML
1.1.3.Получить как поток XML
1.2.Разрешение проблем контекста безопасности при выполнении DTS пакета в задании по расписанию
1.2.1.Введение
1.2.2.Кто является владельцем DTS пакета?
1.2.3.Как устанавливается владелец задания?
1.2.4.Как запускается DTS пакет?
1.2.5.Как Windows NT аутентификация используется при подключениях?
1.2.6.Типичные проблемы
1.2.6.1.Обозначенные буквой диски (Mapped Drives)
1.2.6.2.Относительный путь
1.2.6.3.Использование COM компонент в ActiveX сценариях
1.2.6.4.Безопасность пакета
1.2.6.5.Разрешения для SQLAgentCmdExec
2.ССЫЛКИ НА СТАТЬИ
2.1.Отечественные статьи
2.2.Новые технические статьи Microsoft
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа

СОВЕТЫ

XML в MS SQL Server 2000 и технологиях доступа к данным
Конференция "Корпоративные базы данных 2002"

Автор: Алексей Шуленин

1. Введение.

Несколько слов о том, что за текст попался вам на глаза и стоит ли вам его читать, а мне, соответственно, браться сейчас писать. Ну поддерживает SQL Server XML, ну так что с того? Его сейчас поддерживают все, кому не лень, потому что это круто. А если разобраться по существу, то с какого бока приличному серверу баз данных этот XML вообще сдался? Вот с этого философского вопроса, пожалуй, и начнем. С моей сугубо прагматичной точки зрения это, конечно, не дань моде. Наши с вами реалии сегодня таковы, что большинство корпоративных бизнес-сценариев давно вышли за рамки локальных сетей и предусматривают работу с базами данных через Интернет. Кроме того, эта работа ведется чаще всего в гетерогенных средах, где перемешаны и Windows, и Linux, и Solaris, и FreeBSD, и много чего еще. Во-первых, представление как запроса, так и его результатов в виде XML существенно упрощает передачу данных через межсетевые экраны. Понятно, например, что передать recordset как COM-объект через брандмауэр скорее всего не удастся, потому что ни один администратор в здравом уме не откроет порты для произвольных RPC-вызовов снаружи. Издавна придумывались лазейки и средства: вспомните, например, Remote Data Service (RDS), появившуюся еще в составе ADO 1.5 во второй половине 1997 г. (а ее предшественник Advanced Data Connector - ADC - и того раньше). Она позволила-таки маршалировать recordset'ы через HTTP и DCOM, хотя и не скажу, что это было тривиально. Сериализация объекта в XML решает эту задачу легко. Во-вторых, XML и HTTP, являясь де юре и де факто общепринятыми стандартами, упрощают взаимодействие между базами данных различных производителей, на какой бы платформе и ОС они ни стояли. Причем, даже не только между базами данных, но и напрямую с серверами электронной коммерции и бизнес-интеграции. Например, с Commerce Server, BizTalk Server и др. Причем не только с серверами промежуточного слоя, но и вообще между гетерогенными приложениями, поскольку SOAP легко решает извечную задачу мостования между СОМ и CORBA. Впрочем, о SQL Server как о веб-сервисе мы еще поговорим. В-третьих, преимущество поддержки XML в СУБД состоит в том, что на компьютер конечного пользователя или приложения, работающего с базой данных, не требуется устанавливать никакой клиентской части, специфичной для данной СУБД, т.к. все, что ему нужно, - это стандартные протоколы и форматы Интернета, априори поддерживаемые практически всеми современными платформами.
Итак, работа через Интернет, взаимодействие в гетерогенных средах и поддержка тонких мобильных клиентов - вот основные практические плюсы, которые получает СУБД, если умеет общаться на языке XML.
Кроме того, XML представляет собой одно из наиболее заманчивых направлений эволюции СУБД. Допустим на минуту, что наряду с реляционным механизмом в SQL Server появился встроенный XMLный движок, так что тип данных XML является для него теперь родным. Представим также, что SQL Server является полноценным .NET-сервером, т.е. программировать на стороне сервера можно не только на Т-SQL, но и на любом CLR-языке. Тогда любой класс .NET Framework можно не только выразить при помощи XML, но и хранить и обрабатывать средствами SQL Server. Что означает, ни много, ни мало, что из чистой РСУБД, каковой он является на данный момент, SQL Server плавно превращается в объектную. А это означает, в свою очередь, что все многообразие не реляционных структур и хранилищ, представленных нынче в семействе Windows (WebStore, файловая система, Active Directory и т.д.) элегантно сводится к единой системе обработки и хранения. Поскольку пока еще рано предметно говорить о функциональности MS SQL Server "Yukon", все это, естественно, мои личные фантазии. Делать будущее гораздо интереснее, чем о нем гадать. Давайте вернемся к тому, что мы имеем в плане поддержки XML на сегодня.
Второй вопрос: о чем конкретно будет говориться в этом материале. Как SQL Server, так и XML - вещи, достаточно необъятные. Я поставил себя на место прикладного разработчика, который, наслушавшись про XML, решил, наконец, попробовать его в своем клиент-серверном приложении. В принципе, вся необходимая информация для этого есть, но она разбросана: Books-On-Line к SQL Server, хелпы к SQLXML 3.0, безбрежная MSDN Library, наша и зарубежная программерская периодика, дискуссии на разработческих сайтах и т.д. Я просто попытался превратить разрозненные куски в более или менее целостное повествование, выкидывая то, что мне никогда не пригождалось на практике, и останавливаясь на тех вещах, которые на самом деле нужны, но в документации описаны недостаточно подробно. В процессе копания случалось наступать на грабли, которые самому обойти не получалось. Тогда я обращался за помощью к интернациональному сообществу разработчиков Microsoft и сейчас хотел бы сказать спасибо товарищам Ramakrishna Pamulapati, Matt Neerincx, Kyoko Shikamata и Dion Houston, чьи советы мне здорово помогли. Таким образом, несмотря на то, что добавленная мной стоимость ограничивается компиляцией различных источников, сведением мыслей воедино и расстановкой акцентов, я считаю написание данного материала оправданным. Надеюсь, что он будет способствовать увеличению читательских знаний и умений, а не только энтропии Вселенной.
И еще пара соглашений. Я не собираюсь публиковать этот текст в бумажных средствах массовой информации, поэтому не будем заранее планировать объем и пытаться выполнить пятилетку за два дня и угадать мелодию с одной ноты. Считаем, что объем ограничен моим и вашим временем и терпением. По этой же причине я сначала буду следить за техническим содержанием, а уже потом за чистотой языка и стиля. При самом уважительном отношении к русскому языку, я не считаю криминалом использовать сленг и жаргонизмы в профессиональной беседе, каковой является наше с вами общение. Они позволяют более точно и быстро донести смысл.

[Содержание]

2. Сохранить как XML.

Впервые возможность сохранять (есть еще замечательное слово "персистить") результаты запроса в виде XML появилась в ADO 2.1 (1999 г.) До этого в ADO 2.0 объект Recordset сохранялся только в частном бинарном формате ADTG (Advanced Data TableGram), который использовался для передачи recordset'a при удаленном доступе с помощью RDS.
В Скрипте 1 мы "отперсистили" в XML результат выполнения запроса (ADOшный Recordset).

static void Save_ADODBRecordset_XMLFile()
{
   ADODB.ConnectionClass cnn = new ADODB.ConnectionClass();
   cnn.Open("Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI", "", "", (int)ADODB.ConnectOptionEnum.adConnectUnspecified);

   ADODB.Recordset rst; Object RecsAffected = new Object();
   rst = cnn.Execute("SELECT c.ContactName, c.ContactTitle, o.OrderDate " +
      "FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID",
      out RecsAffected, (int)ADODB.ExecuteOptionEnum.adOptionUnspecified);

   FileInfo f = new FileInfo("..\\Results\\ADODBRecordset_XMLFile.xml");
   if (f.Exists) f.Delete();
   rst.Save(f.FullName, ADODB.PersistFormatEnum.adPersistXML);
   cnn.Close();

   Process.Start("iexplore.exe", f.FullName);

   XmlDocument xmlDoc = new XmlDocument();
   xmlDoc.Load(f.FullName);
   Console.WriteLine("Кол-во заказов, сделанных данным клиентом = {0}",
   xmlDoc.SelectNodes(".//*[@ContactName='Maria Larsson']").Count);
}

Скрипт 1

Получается действительно нормальный XML, как видно на Рис.1.

- <xml xmlns:s=" uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882 " xmlns:rs=" urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
+ <s:Schema id ="RowsetSchema">
-
<rs:data >
  <z:row ContactName=" Paul Henriot" ContactTitle=" Accounting Manager" OrderDate ="1996-07-04T00:00:00"/>
  
<z:row ContactName=" Karin Josephs" ContactTitle=" Marketing Manager" OrderDate ="1996-07-05T00:00:00"/>
  
<z:row ContactName=" Mario Pontes" ContactTitle=" Accounting Manager" OrderDate font color=blue>="1996-07-08T00:00:00"/>
...
 </rs:data>
</xml>

Рис.1

Его можно открыть при помощи объектной модели DOM, выполнить XPath-запрос, возвращающий узлы заказов, сделанные клиентом по имени Maria Larsson, и другие подобающие XML действия. Что-то можно заложить в первоначальный SQL-запрос:

SELECT count(1) FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID WHERE c. ContactName = 'Maria Larsson'

но согласитесь, чтобы показать работу с сохраненным recordset'ом как с XML, часть работы для приличия надо проделать средствами XPath, а не SQL. По соображениям экономии места данный пример, как и все последующие, написаны на C#. Обратите внимание, что в нем используется не ADO.Net, а классическая объектная модель ADO (2.7). Для нее не требуется делать tlbimp из библиотек классов в ... \Program Files\Common Files\System\ado, потому что соответствующая обертка существует изначально как Primary Interop Assembly.

[Содержание]

3. Получить как поток XML.

В рассмотренном примере XML передавался от ADO к DOM через внешний файл. В ADO 2.5 появилась возможность сохранения recordset'a в виде XML не только в файл, но и в любой объект, поддерживающий интерфейс IStream. В Скрипте 2

static void Save_ADODBRecordset_XMLStream()
{
...
   MSXML2.DOMDocument40Class xmlDoc = new MSXML2.DOMDocument40Class();
   rst.Save(xmlDoc, ADODB.PersistFormatEnum.adPersistXML);
   cnn.Close();
   MSXML2.DOMDocument40Class xslDoc = new MSXML2.DOMDocument40Class();
   xslDoc.loadXML("<?xml version='1.0' ?>" +
      "<doc xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xsl:version='1.0'>" +
      "<xsl:copy-of select='//*[@ContactName=\"Maria Larsson\"]'/></doc>");
   FileInfo f = new FileInfo("..\\Results\\ADODBRecordset_XMLStream.xml");
   StreamWriter sw = f.CreateText();
   sw.Write(xmlDoc.transformNode(xslDoc));
   sw.Close();
...
}

Скрипт 2

recordset записывается в поток объекта DOMDocument из СОМовской библиотеки MSXML4 (WINNT\System32\msxml4.dll). Полученный из recordset'a xmlDoc затем подвергается XSLT-преобразованию, заданному в xslDoc, которое выбирает все элементы, относящиеся к заказчику Maria Larsson. Полученная в результате преобразования строка записывается в файл, который отображается в браузере.
Возможна и обратная ситуация - чтение XML из потока и его запись в recordset. Это было достигнуто за счет введения нового сервисного провайдера Microsoft OLE DB Persistence Provider ("Provider=MSPersist"). Простота сохранения recordset'a в XML накладывает в то же время ограничения: ADO жестко задает схему генерируемого документа (см. еще раз рис.1). Это плоский XML. Несмотря на отношения между таблицами, названия элементов не несут никакой информации о самих таблицах, ограничиваясь безликим , и т.д., так что для внятного отображения, скорее всего, требуется XSL-преобразование.

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

[Содержание]

Разрешение проблем контекста безопасности при выполнении DTS пакета в задании по расписанию

По материалам статьи Microsoft: INF: How to Run a DTS Package as a Scheduled Job (Q269074)

Информация в этой статье относиться к Microsoft SQL Server версий 7.0 и 2000 (все издания)

[Содержание]

Введение

Одной из распространённых проблем, связанных с использованием Data Transformation Services (DTS), состоит в том, что DTS пакет выполняется без ошибок в SQL Server Enterprise Manager, но наблюдаются сбои в работе DTS пакета, когда он выполняется как задание по расписанию. Обычно, это происходит из-за отличий в контексте безопасности, когда пакет выполняется как задание и когда он выполняется в интерактивном режиме. Эта статья призвана помочь в разрешении проблем безопасности, связанных с запуском на выполнение DTS пакетов.
Когда Вы запускаете на исполнение DTS пакет через DTS Designer в SQL Enterprise Manager (EM), пакет будет исполняться на том компьютере, где Вы запустили EM. Если Вы работаете с сервером (физически или через удалённое соединение), пакет будет выполнен на этом сервере. Если Вы работаете на рабочей станции, и Вы зарегистрировали SQL Server в EM, то пакет будет выполнен на этой рабочей станции. Контекст безопасности пакета будет такой, как у Вашей учётной записи Windows NT, под которой Вы зарегистрировались на этом компьютере. Когда пакет выполняется как задание по расписанию, пакет всегда выполняется на сервере.
Часто, разработчик создает и проверяет DTS пакет в интерактивном режиме на своей рабочей станции с помощью DTS Designer в EM. После того, как DTS пакет отлажен, пакет оформляется как задание. Это действие изменяет расположение пакета с рабочей станции разработчика на сервер. Если пакет загружал текстовые данные в SQL Server, может произойти сбой в работе пакета на сервере, если такой путь к текстовому файлу не существуют на сервере. Если пакет соединялся с другим сервером, сбой в работе пакета может произойти, если контекст безопасности задания не может обеспечить необходимые права для подключения.

[Содержание]

Кто является владельцем DTS пакета?

Пакеты оформленные, как задание по расписанию, соответственно управляются сервисом SQL Agent. Это задание, как любое другое задание по расписанию, имеет владельца (Owner). Владельцем может быть SQL Server логин или учетная запись Windows NT.

Определить владельца задания можно следующим образом:

Дважды щёлкните по заданию в Enterprise Manager, и затем посмотрите поле с раскрывающимся списком Owner.
-или-
Выполните системную хранимую процедуру msdb.dbo.sp_help_job.

Контекст безопасности, в котором задание выполняется, определяется владельцем задания. Если задание принадлежит логину, который не является членом серверной роли Sysadmin, то пакет будет исполнен в контексте специальной учетной записи SQLAgentCmdExec, и задание будет иметь её права и разрешения.
Для SQLAgentCmdExec, чтобы обеспечить запуск задания, которое будет присоединяться к SQL серверу, учетная запись SQLAgentCmdExec должна иметь надлежащие Windows NT разрешениями и обеспечивать доступ к SQL серверу с соответствующими правами для базы данных. Учетная запись SQLAgentCmdExec не имеет вообще никаких прав вне локального компьютера, на котором запущен SQL Server. Поэтому, любой пакет, который требует установки подключения к другим компьютерным, будет завершён со сбоем, если он оформлен, как задание, принадлежащее логину который не является членом роли Sysadmin.
Если задание принадлежит учетной записи (SQL Server логин или учётная запись Windows NT) которая является членом роли Sysadmin, задание будет выполняться SQL Agent-ом в контексте учетной записи, от имени которой запускается сервис SQL Agent.
Также, если задание принадлежит учетной записи из домена Windows NT и если пакет сохранен на SQL сервере или в репозитории SQL Server (не как файл), Вы должны запустить службу SQL Server от имени учётной записи этого же домена или учетной записи из доверенного домена.

[Содержание]

Как устанавливается владелец задания?

Когда Вы щёлкаете правой кнопкой мыши по DTS пакету и определяете его в виде задания по расписанию, присвоение владельца этому заданию зависит от того, как SQL Server зарегистрирован в Enterprise Manager. Если SQL Server зарегистрирован через Windows NT аутентификацию, владельцем задания по расписанию будет учетная запись, от имени которой стартует сервис SQL Agent. Если SQL Server зарегистрирован в EM с помощью собственной аутентификации SQL Server (например, под логином SA), владельцем задания будет тот же самый логин SQL сервера.

Изменение владельца пакета осуществляется следующим образом:

1. Дважды щёлкните по заданию в Enterprise Manager.
2. Щёлкните по вкладке General, и затем щёлкните по полю с раскрывающимся списком Owner.

Также Вы можете использовать системную хранимую процедуру msdb.dbo.sp_update_job, с помощью которой можно изменить владельца пакета.

[Содержание]

Как запускается DTS пакет?

Если Вы запускаете пакет вручную, используя утилиту командной строки DTSrun.exe, контекст безопасности будет как у учётной записи Windows, под которой Вы зарегистрировались на компьютере. Если Вы запускаете пакет, используя DTSrun.exe через расширенную хранимую процедуру xp_cmdshell, пакет будет выполнен в контексте учетной записи, от имени которой стартует сервис SQL Server, при условии, что пользователь, который выполнил xp_cmdshell, является членом роли Sysadmin. Если пользователь, который выполнил xp_cmdshell, не включён в роль Sysadmin, то DTSrun.exe выполнится в контексте учетной записи SQLAgentCmdExec.
Если SQL Server был запущен от имени учетной записи Local System, DTS пакет не будет иметь никаких разрешений вне этого компьютера.
Если сервис SQL Server стартован под учетной записью Windows NT, пакет будет иметь те же самые права и разрешения как у этой учётной записи. Если эта учетная запись Windows NT принадлежит локальному компьютеру (не является учётной записью домена), пакет не будет иметь никаких прав вне этого компьютера. Если учётная запись Windows NT является учётной записью домена, пакет сможет обращаться к ресурсам на других компьютерах в том же домене.

[Содержание]

Как Windows NT аутентификация используется при подключениях?

Иногда DTS пакет содержит объект, который создаёт подключение к источнику данных используя Windows NT аутентификацию. Контекст безопасности, используемый для этого подключения, будет тот же самый, как у контекста пакета, который выполняется. Если пакет запускается из командной строки через DTSRun.exe, используются права учетной записи Windows NT, под которой зарегистрировались на компьютере. Если пакет выполняется как задание SQL Server Agent, то подключение будет создано от учетной записью, от имени которой стартован сервис SQL Agent (принимаем, что владелец пакета является членом роли Sysadmin).

[Содержание]

Типичные проблемы

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

[Содержание]

Обозначенные буквой диски (Mapped Drives):

Если в пакете используется путь к файлу с обозначенным буквой, распределённым в сети диском, исполнение пакета по расписанию завершиться неудачно независимо от того, кто является владельцем пакета. SQL Agent - как сервис Windows NT и любой сервис Windows NT не могут видеть обозначенные буквой, распределённые в сети диски. Обозначенные буквой диски являются частью профиля пользователя, который загружается при его входе в сеанс Windows NT. Сервисы не работают с параметрами пользователя. Используйте путь в формате UNC вместо обозначенных буквой дисков.

[Содержание]

Относительный путь:

Относительный путь (путь через имя диска) может определять текущее расположение пакета (например: C:\). Если пакет разработан на рабочей станции и используется в задании по расписанию, относительные пути, использованные в пакете при его исполнении на сервере, могут измениться. Относительный путь это ссылка, которая может указывать на другое физическое расположение на сервере. Если указываемые в этой ссылке файлы на сервере не будут находиться в таком же, как на рабочей станции месте, произойдёт сбой в выполнении пакета.

[Содержание]

Использование COM компонент в ActiveX сценариях:

Если компоненты COM (например, запросы Microsoft ActiveX Data Objects (ADO), Remote Data Objects (RDO) или объекты Decision Support Object (DSO)) вызываются в сценарии ActiveX, эти компоненты должны существовать на компьютере, на котором DTS пакет будет исполняться. Если Вы выполняете пакет с помощью DTS Designer в EM или через DTSrun.exe, эти компоненты должны существовать на компьютере, на котором Вы в этот момент работаете. Если пакет оформлен, как задание по расписанию, необходимые компоненты должны быть загружены на компьютере, где запущен SQL Server.

[Содержание]

Безопасность пакета:

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

[Содержание]

Разрешения для SQLAgentCmdExec:

Если задание выполняется в контексте учетной записи SQLAgentCmdExec, и учетная запись SQLAgentCmdExec не имеет прав входа в SQL Server, задание может закончиться неудачно со следующим сообщением об ошибке:

DTSRun: Loading... DTSRun: Executing... DTSRun OnStart: DTSStep_DTSExecuteSQLTask_1 DTSRun OnError: DTSStep_DTSExecuteSQLTask_1, Error = -2147217843 (80040E4D) Error string: Login failed for user 'NT_name\SQLAgentCmdExec'. Error source: Microsoft OLE DB Provider for SQL Server Help file: Help context: 0 Error Detail Records: Error: -2147217843 (80040E4D); Provider Error: 18456 (4818) Error string: Login failed for user 'NT_name\SQLAgentCmdExec'. Error source: Microsoft OLE DB Provider for SQL Server Help file: Help context: 0 DTSRun OnFinish: DTSStep_DTSExecuteSQLTask_1 DTSRun: Package execution complete. Process Exit Code 1. The step failed.

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

[Содержание]

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

Отечественные статьи

Администрирование CVS
Автор: Инга Захарова.
CVS – или Concurrent Versioning System (система параллельного контроля версий) – инструмент для сохранения работы пользователей путем ведения истории изменений. Эта система позволяет восстановить предыдущие версии файлов, регистрирует, кто и какие изменения производит и предотвращает наложение одного изменения на другое, если они производятся одновременно... [подробнее]
Война автоматизации
Автор: Сергей Лебеденко.
Итак, “война автоматизации” началась. Ваш завод, фирма, объединение, корпорация или торговая империя терпит поражение за поражением в битве с тем программным обеспечением, которое уже установлено на ваши компьютеры (ну а если еще не установлено, все же такая вещь, как компьютер, вам известна)... [подробнее]
Хранение данных в КИС
Автор: Сергей Васильев.
Возможности современных компьютеров по обработке информации изменили характер документов, хранимых и обрабатываемых в корпоративных сетях, - наряду с текстом в них становится все больше графики, видео, звука. В крупных корпорациях информация накапливается так быстро, что емкости RAID-систем (Redundant Array of Inexpensive Disks, избыточный массив недорогих дисков) могут ежегодно увеличиваться на 80%. По оценкам корпорации IDC (http://www.idc.com), расходы на хранение данных в 2001 г. составят около 50% всех затрат на информационные системы. В организациях, ориентирующихся на безбумажные технологии, быстро растут расходы на закупку, содержание и надежное функционирование средств хранения... [подробнее]
Введение в .NET Framework
Автор: Андрей Колесов.
Один из ключевых элементов архитектуры Microsoft .NET - среда .NET Framework. Она отвечает за реализацию нового режима исполнения (а значит, и разработки) приложений на локальном компьютере. Речь идет о дополнительной связующей среде между приложениями и ОС, с одной стороны, и между программными компонентами одного приложения - с другой... [подробнее]
Microsoft .NET - видение корпорации
Автор: Кирилл Жучков.
В июне 2000 г. на "Форуме 2000" руководители корпорации Стив Балмер и Билл Гейтс представили новую концепцию распределенных вычислений - Microsoft .NET. Заключенные в ней идеи вызвали целую волну бурных дискуссий и обсуждений как в прессе, так и в среде разработчиков. Некоторые эксперты предположили, что реализация концепции потребует многих лет. Однако уже сегодня, вопреки подобным прогнозам, можно приступать к освоению технологий и использованию продуктов, составляющих основу .NET... [подробнее]
Системы хранения: базовые понятия
Автор: Сергей Замуруев.
Сегодня системы хранения - одна из самых быстроразвивающихся областей в ИТ. И даже во времена тотального урезания бюджетов закон роста объема хранимой информации действует вне зависимости от экономической ситуации... [подробнее]
Страховое копирование данных
Автор: Андрей Борзенко.
Сегодня, когда бизнес все более и более полагается на информационные технологии, информация становится одним из наиболее важных активов предприятия и определяет его конкурентоспособность. Благодаря мощным технологиям многие компании, работающие на современном глобальном рынке, смогли значительно повысить показатели эффективности, продуктивности и прибыльности. Одна из наиболее сложных проблем, которые встают сегодня перед ИТ-менеджерами, - огромный объем распределенных данных, циркулирующих в информационной системе. За последние годы объем хранимой на серверах информации резко возрос, и даже в небольших компаниях счет идет уже на сотни гигабайт. Невозможность эффективно управлять данными может отрицательно сказаться на прибыльности предприятия и ограничить его способность к росту. Поэтому передача данных, их хранение, защита и управление ими в условиях постоянного роста объема и усложнения структуры данных составляют сейчас одну из основных проблем для бизнеса... [подробнее]
Протоколы инкапсуляции для IP Storage
Автор: Андрей Борзенко.
В последние годы гигантский рост потоков информации и масштабов систем хранения данных, обусловленный появлением нового класса приложений, работающих с корпоративными данными и Интернетом, привел к резкому увеличению потребностей в системах хранения данных. При этом особенно быстро растут требования к сетевому хранению данных. По оценкам IDC, в 2001-2003 гг. объем хранилищ данных будет увеличиваться со скоростью примерно 75% в год... [подробнее]
Хороший клиент - "тонкий" клиент
Автор: Андрей Борзенко.
Стремительный рост необходимого числа прикладных программ и приложений при постоянно возрастающих требованиях к мощности вычислительных ресурсов требует частой модернизации оборудования и периодической замены отдельных компонентов. Это увеличивает как стоимость самих аппаратных средств, так и дополнительные расходы на их поддержку. Совокупная стоимость владения компьютерной системой, или TCO (Total Cost of Ownership), включает в себя затраты на приобретение компьютерного оборудования, необходимого для выполнения современных, постоянно совершенствующихся программ, и поддержание его в рабочем состоянии, а также финансовые потери, обусловленные сбоями в его работе... [подробнее]
Microsoft SharePoint Portal как средство управления знаниями
Автор: Иван Никитин.
Информационные технологии давно уже нашли свое место в офисах современных компаний. Однако для того, чтобы получить от них максимальную отдачу, недостаточно поставить на рабочих местах ПК с пакетом офисных программ и соединить их кабелем. Необходимо также обеспечить эффективную коллективную работу сотрудников и автоматизировать деловые процессы в фирме. Подобное решение, как правило, приходит после первых же месяцев эксплуатации систем вычислительной техники на предприятии... [подробнее]
Среда разработки Visual Studio .NET
Автор: Андрей Колесов.
По мнению большинства экспертов, жизненный путь платформы .NET по-настоящему начнется с появлением на рынке комплекса средств разработки нового поколения Visual Studio .NET. Его официальное представление и начало продаж коробочных версий должны состояться в феврале 2002 г., а подписчики службы MSDN должны были получить комплекс еще в декабре прошлого года. Важность VS.NET для всей концепции Microsoft .NET вполне понятна: успешное продвижение платформы решающим образом зависит от наличия широкого круга прикладных .NET-приложений, т. е. от решения независимых разработчиков, на что делать ставку — на .NET или на J2EE... [подробнее]
Руководство по управлению внедренческими проектами на базе MS Project 2000 и рекомендаций PMI
Автор: Владимир Иванов.
Менеджеров всегда волнуют проблемы контроля над деятельностью подразделения, улучшения прогнозирования, выполнения задачи в рамках бюджета и сроков, снижения рисков... [подробнее]

[Содержание]

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

BUG: DTS Package Execution Is Canceled Unexpectedly in a Visual Basic Application (Q319058)
PRB: A DTS Package That You Save as a Visual Basic File May Fail to Import Tab-Delimited Text Data (Q320304)
Microsoft Baseline Security Analyzer (MBSA) Version 1.0 Is Available (Q320454)
FIX: Provider Option Supports Remoting of Enhanced LIKE Predicates (Q321823)
HOW TO: Use DTS Package Events in Visual Basic .NET (Q321525)
PRB: SQL Server 7.0 Service Pack Installation Fails with an Error Message When a Script File Is Run (Q264123)
BUG: DTS Copy Objects Task (DMO) Breaks Transaction Log Backup Chain By Switching Recovery Mode to Simple During Transfer (Q308267)
PRB: SQL Server 2000 Installation or Local Connections Fail with "SSL Security error :ConnectionOpen (SECDoClientHandshake())" Error Message (Q309398)
BUG: Concurrent Async Keyset Cursors May Cause Server to Stop Responding (Q226191)
SAMPLE: Mfceqado.exe Shows How to Use English Query with MFC and ADO (Q229612)
INF: Changes to SQL-DMO Objects in SQL Server 7.0 (Q239794)
INF: How To Transfer Logins and Passwords Between SQL Servers (Q246133)
PRB: Unattended Install of SQL Server 7.0 or MSDE 1.0 Stops Responding (Q247221)
BUG: xp_cmdshell Does Not Display Last Line of Command Output (Q255749)
HOWTO: Use ADO and SQL Server to Select Multiple Records by Unique Field (Q294349)
FIX: DTS Fails to Transfer Rows When a Non-Sysadmin User Opens Packages from T-SQL with Xp_cmdshell (Q302828)

[Содержание]

ФОРУМ SQL.RU

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

Нынче по небу правильно солнце идет
T-SQL. Как отключить всех от БД?
Счетчик
Всем посетителям форума MS SQL Server
Книга Kalen Delaney "Inside Microsoft SQL Server 2000" в формате CHM
помогите с запросом
Как средствами T-SQL определить , что linked server доступен ?
База данных - хранилище объектов.
clustering SQL server
Кластерные индексы и Update
Как лучше организовать структуру таблицы?

[Содержание]

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

"Зависание" транзакции
ErWin 4.0 and ModelMart

[Содержание]

#097<<  #098

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

sql.ru

Описание рассылки
 Поиск на SQL.RU
Искать: 
Результатов на странице: Формат:
Тип запроса: Раздел:
МИНИФОРМА
ПОДПИСКИ




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

В избранное