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

MS SQL Server

  Все выпуски  

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


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

#245<<  #246

СОДЕРЖАНИЕ

1.СТАТЬИ
1.1.Обзор Virtual Address Space - VAS
1.2.SQL Server 2000 Workgroup Edition - Клиент всегда прав!
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.КНИГИ
4.1.Базы данных: проектирование и использование. Учебник

СТАТЬИ

Обзор Virtual Address Space - VAS

По материалам статьи Slava Oks: A look at Virtual Address Space - VAS
Перевод Александра Гладченко

Память представляет собой набор разделяемых между приложениями, их компонентами и операционной системой ресурсов. Нужно чётко себе представлять, что происходит при обращении к каждому конкретному ресурсу памяти. Очень часто, разработчики, пользователи или администраторы баз данных ошибочно считают, что при обращении к разным ресурсам памяти используется один универсальный раздел памяти. Такое представление было справедливым для DOS, когда всё было просто и не существовало даже понятия виртуальной памяти, а приложения не разделяли ресурсы компьютера между собой. С тех пор многое изменились.
Ресурсы памяти бывают нескольких типов. Ресурсы могут управляться операционной системой или пользовательским кодом, поэтому для разработчиков очень важно получить полное представление об этих ресурсах.
Как и обещал автор, в этой статье он хотел бы поговорить о виртуальном адресном пространстве памяти - Virtual Address Space (VAS). В его предыдущей статье было показано, как можно будет контролировать VAS в следующей версии SQL Server 2005. VAS - это такой ресурс, которому при разрешении проблем памяти очень часто не уделяют должного внимания. Также, этой темой часто пренебрегают и в книгах, при описании менеджера памяти. Даже в Task Manager Windows нет счётчиков производительности для использования процессами VAS. Но понимание того, как процессы в Windows работают с VAS, является очень критичным при исследовании проблем памяти.
Каждый процесс имеет собственное VAS. Windows выделяет отдельную область VAS для нового процесса, когда вызывается CreateProcess API. К тому же, разработчикам предоставляется возможность распределять/высвобождать участки VAS, используя интерфейсы VirtualAlloc/VirtualFree API. Участок VAS может быть закреплён за физической памятью немедленно или в тот момент, когда это необходимо. Если нужно закрепить участок VAS немедленно, операционная система сначала ассигнует участок VAS, и только потом предоставит к нему доступ. Минимальный размер такого распределяемого участка равен 64 КБ (Это нужно запомнить, т.к. это очень важно!) и, кроме того, все участки VAS являются кратными 64 КБ. В свою очередь привязка VAS к физической памяти основа на базовом размере страницы, который может равняться 4 КБ или 8 КБ (у платформ x86 и IA64 существуют также большие страницы 4 МБ и 16 МБ, но мы поговорим о них как-нибудь в другой раз). Нужно отметить очень важный момент: любое новое ассигнование через VirtualAlloc всегда будет округлятся до 64 КБ, причём, если потом будет распределятся новый участок VAS, связанный с физической памятью, операционная система будет выбирать округлённые до размера страницы куски физической памяти, и они будут выбираться из VAS процесса, которое было округлено до 64 КБ (автор признаётся, что когда первый раз узнал об этом, он был в шоке!). Например, если интерфейс VirtualAlloc вызывается с флагом COMMIT для ассигнования 1024 байт, операционная система распределит для указанного процесса участок VAS в 64 КБ и ассигнует в его распоряжение страницу в 4 или 8 КБ физической памяти. Подытоживая это можно сказать, что нужно быть очень осторожным при использовании интерфейса VirtualAlloc API. Даже если Вы его не используете, всё равно нужно хорошо понимать его значения в процедурах отладки, когда исследуется работа процесса с недостатком или вне VAS, поскольку этот механизм часто используется на платформе x86. Чтобы успешно разрешать подобные проблемы нужно понимать, чем является VAS и как его можно использовать.
В действительности, вполне возможно исчерпать VAS даже на платформе 64bit. В своей испытательной лаборатории, работая с большими блоками памяти, разработчики действительно несколько раз наблюдали исчерпание VAS, и также автор исследовал заявленный баг, в котором описывалась подобная проблема, но с блоками меньшего размера. Ключом к разрешению подобных проблем является то, что при проектировании приложения нужно следить за тем, что структуры данных должны масштабироваться с учётом установленного для блока количества физической памяти.
Как было сказано, процессу выдаются участки VAS. Всё, что распределяется, загружается, создаётся и отображается процессом, использует VAS таким образом, как это было указано выше при описании механизма использования запросов VirtualAlloc и предшествует дальнейшим действиям. Например, загрузчик, перед загрузкой библиотеки (dll) в VAS процесса, вызывает VirtualAlloc того типа, который распределяет участок VAS для dll; а при создании в процессе потока, операционная система в начале резервирует участок VAS для стека потока, и то же самое происходит при отображении файла в пространстве процесса.
Компоненты, когда они используют ассигнование участков VAS, должны использовать свой тип запросов VirtualAlloc. Операционная система на низком уровне распределяет виртуальный адресный дескриптор - virtual address descriptor (VAD), который представляет из себя объект - описатель виртуальной адресации, т.е. структуру, которая описывает участок VAS. Объект VAD полностью описывает участок VAS, его размер, атрибуты ассигнования и защиты. Как Вы могли догадаться, операционная система поддерживает древовидную структуру VAD. Дерево VAD предоставляет возможность операционной системе эффективно управлять VAS. Дерево VAD процесса можно увидеть, используя локальный отладчик ядра windbg. Кроме того, как Вы думаете, что делает интерфейс VirtualQuery API? Совершенно верно, с его помощью можно пройти по дереву VAD процесса, и именно его разработчики используют в SQL Server 2005 при генерации представления sys.dm_os_virtual_address_dump. Как Вы видите, Windows управляет VAS процесса так же, как управляется динамическая память (хип) любого типа с минимальным размером блока в 64 КБ. На практике можно написать собственный интерфейс, но, к сожалению, пока не предусмотрена возможность его подключения.
Автор подчёркивает, что VAS - это очень важный ресурс, который используется множеством различных компонент, загруженных в пространство процесса, поэтому очень важно иметь возможность отслеживать его состояние. Традиционно, для подобных целей используются счётчики производительности, с помощью которых хотелось бы отслеживать, сколько VAS в момент измерения используется процессом. Увы, Task Manager не имеет подобных счетчиков.
К сожалению, в Windows нет простого пути для определения того, что твориться в VAS. Но то, что операционная система не предоставляет такого механизма, не подразумевает того, что такой механизм не может быть создан. Есть несколько инструментов, которые можно использовать для исследования VAS. Один из них - vadump.exe. Автор доверяет информации, которую предоставляет VADUMP при обходе дерева VAD процесса, для чего используется VirtualQuery API. Эта информация об участках VAS, которую можно анализировать.
Но, не смотря на то, что VADUMP предоставляет достаточно много информации, очень часто её может оказаться недостаточно для выявления проблемы с VAS, то есть её утечки. Для многих участков VAS, VADUMP не снабжает разработчика информацией о том, какому компоненту этот участок принадлежит. Одним из способов получения такой информации состоит в использовании вызовов VirtualAlloc/VirtualFree и последующего отслеживания всех операций с VAS. Именно это делает ещё один инструмент - LeakDiag, который построен на специальной библиотеке, разработанной Microsoft Research, с помощью которой обходится дерево VAD и для этого применяется интерфейсы VAS API. Для каждого ассигнования, LeakDiag запоминает информацию о распределении и о стеке. В любой момент эта информация может быть выгружена в файл для анализа. Насколько автор осведомлён, LeakDiag является в настоящее время единственным инструментом, с помощью которого можно исследовать VAS на таком уровне. Скачать LeakDiag можно по этой ссылке:

ftp://ftp.microsoft.com/PSS/Tools/Developer Support Tools/LeakDiag/

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

  • VAS часто пренебрегают.

  • VAS - ограниченный ресурс даже для 64bit платформ.

  • Windows управляет VAS также, как и любой динамической памятью.

  • Минимальный участок VAS - 64 КБ.

  • Утечка VAS может привести к завершению процесса (Например, когда чересчур используется DBCC PINTABLE).

  • Для контроля VAS пока ещё существует не много инструментов.

Автор надеется, что эти моменты будут учитываться читателями. Понимание того, как работает VAS - это первый шаг к пониманию работы Менеджера Памяти SQL Server. В следующей статье автор продолжит рассказ о других типах ресурсов памяти, а также опишет различные типы вытеснения памяти.

[В начало]

SQL Server 2000 Workgroup Edition - Клиент всегда прав!

Автор Александр Гладченко

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

Причины появления SQL Server 2000 Workgroup Edition

На дворе 2005-й год и не трудно подсчитать, сколько лет мы с вами эксплуатируем старую "лошадку" SQL Server 2000. Было время, когда мы гордились успехами этой СУБД в эталонных тестах TPC, когда ведущие производители баз данных из кожи вон лезли, что бы ухватиться за пальму лидерства на рынке высоко - производительных систем, расширить свои сервисы для бизнес - сферы, ухватить как можно более весомый кусок "пирога" на рынке обслуживания данных… Но со временем, технологии конкурентов Microsoft получили дальнейшее развитие, и теперь практически бессмысленны стали какие - либо сравнения SQL Server с его извечными "врагами", DB2 и Oracle. "Великая отсрочка" выпуска новой версии SQL Server внесла некоторое затишье в битвах больших СУБД, рынок не претерпевал значительных изменений и все, казалось бы, были довольны… Но время неумолимо, и неожиданно это рынок встал лицом к лицу перед новыми реальностями, о которых трудно было предполагать пять лет назад.
Первой такой реальностью стало повышение активности работы с данными маленьких компаний. Настольные СУБД вдруг стали недостаточны для хранения постоянно увеличивающихся объёмов информации. Первыми на это отреагировали разработчики систем баз данных с открытым кодом, дооснастив свои СУБД полезными и апробированными их "старшими братьями" возможностями. Это создало новую угрозу войны за рынок небольших систем, что принудило лидеров отрасли выпустить свои редакции, ориентированные на чрезвычайно активизировавшихся небольших клиентов: Oracle Standard Edition One и IBM DB2 Express. Казалось бы, в арсенале Microsoft есть специальные редакции, которые предназначены для такого же применения, но дело в том, что второй реальностью стало качественное изменение требований клиентов к небольшим СУБД. Поскольку с ростом объёмов информации возрастает её критичность для бизнеса, а, следовательно, и её условная стоимость, то клиенты теперь предъявляют всё более строгие требования к системам управления базами данных и при этом, они хотят, что бы стоимость владения такими СУБД была не высока. Кроме того, клиенты, наблюдая тенденции в росте накапливаемой базами данных информации, хотели бы иметь возможность максимально простого обновления небольших СУБД до уровня промышленного масштаба.
Не остались в стороне от этих требований и клиенты Microsoft. Как выяснилось, сегодня они хотят получить более функциональную базу данных, чем бесплатные СУБД с открытым кодом, но менее дорогую, чем стандартное издание SQL Server. По сути, всем техническим требованиям к надёжности, доступности и готовности удовлетворяют серверные редакции SQL Server 2000, и совершенно логично, что путём некоторого ограничения их возможностей, можно было бы снизить стоимость владения за счёт уменьшения цены лицензии на сервер или процессор.
Давайте теперь посмотрим, как же новая редакция SQL Server отвечает на новые требования клиентов? Workgroup Edition нацелен на маленькие и средние организации (от 5 до 500 человек), которым нужны только основные возможности баз данных, удобные и простые средства их управления, бесшовная интеграция с более мощными СУБД и всё это одним пакетом. SQL Server 2000 Workgroup Edition - это СУБД в чистом виде, позволяющая решать наиболее типичные OLTP задачи. Кроме того, по мере роста данных, возможна модернизация до Standard или Enterprise Edition. По сути, лозунгом изменений в линейку редакций SQL Server 2000 можно считать фразу из статьи Tom Rizzo, директора по продажам SQL Server: "The Right Product for the Right Customer". SQL Server 2000 Workgroup Edition может быть установлен на тех же операционных системах, что и Standard или Enterprise Edition, но он также может быть установлен и на Windows XP. Лицензии будут стоить $730 на сервер с пятью клиентскими лицензиями (доп. CAL по $ 146) или $3,700 на один процессор. И, как это традиционно принято в Microsoft, комплектация поставки и лицензирование являются неотъемлемой частью поставляемого программного продукта.

Снижение стоимости владения - демонстрация силы

Демонстрацией снижения стоимости владения может послужить новые рекорды TPC-C в категории цена/производительность, который в последние пол года продемонстрировала корпорация Dell. В декабре прошлого года система Dell, которую составили сервер PowerEdge 2850, Windows 2003 Server и SQL Server 2000 Standard Ed, опустила стоимость транзакции до $1,53. Полное описание используемой в эталонном тесте конфигурации можно загрузить по этой ссылке: Full Disclosure Report (1302 KB)


Рис. 1.

Совсем же недавно, на очень похожей конфигурации системы, стоимость транзакции удалось опустить до одного доллара, сорока центов. Использовался сервер PowerEdge 2800, Windows 2003 Server и SQL Server 2000 Workgroup Edition. Полное описание используемой в эталонном тесте конфигурации можно загрузить по этой ссылке: Full Disclosure Report (1162 KB)


Рис. 2.

Такие результаты убедительно доказывают, что конкурировать с Microsoft на поле малых СУБД очень трудно и предложение Workgroup Edition клиентам в качестве решения для диктуемых сегодняшним временем проблем оказывается наиболее выигрышным.
Кроме того, предлагаемая новая линейка редакций выглядит очень логично, позволяя компаниям расширить спектр решений для организации данных, и предлагает лучшие возможности выбора для своих технологических и бюджетных требований. Всё это наглядно демонстрирует Рисунок №3.


Рис. 3.

Что входит в поставку Workgroup Edition

За основу тиража Workgroup Edition была выбрана сборка 8.00.0818, а сам дистрибутив включает все основные OLTP компоненты СУБД:

  • Одинаковая база кода с серверными версиями SQL Server 2000, нет ограничений на подключения и размер базы.

  • Безопасность в полном объёме.

  • Простота администрирования за счёт сохранения в поставке всех инструментов - Enterprise Manager и т.д.

  • Full-Text Search

  • Indexed Views

  • Import/Export

  • Репликация (snapshot, transactional и merge), как у стандартной редакции.

  • Rich XML Support

  • Meta Data Services

  • Отладка хранимых процедур

  • Масштабируемость: до 2 процессоров (dual-core не влияет на цену), до 2 GB памяти

  • Интеграция с: BizTalk Serve, Commerce Server, Office

  • Extend Applications

  • Web Access to Data

  • Web and Application Hosting

Как видно, к наиболее заметным отличиям от стандартной поставки можно отнести отсутствие таких компонент, как: Reporting Services, Data Mining, Analysis Services и English Query.

Эталонный тест Transaction Processing Performance Council

Давайте теперь посмотрим, что представляет собой новая редакция с точки зрения производительности. На рисунке №4 представлено сравнение последних лучших результатов, полученных в тесте TPC-C на не кластерной платформе Windows и с использованием SQL Server 2000.


Рис. 4.

Как видно на этом рисунке, редакция для рабочих групп не уступает в производительности стандартной, серверной редакции. Небольшой прирост производительности Workgroup Edition обусловлен, скорее всего, отличиями в аппаратной платформе (вдвое больше процессорный кэш второго уровня).

Стоимость лицензий

На рисунке №5 представлена стоимость процессорных лицензий разных редакций (на графике она представлена голубым цветом) и стоимость лицензии на сервер с 25-ю клиентскими лицензиями.


Рис. 5.

Из рисунка видно, что Workgroup Edition для лицензии на процессор и для варианта с приобретением серверной лицензии вкупе с двадцати пятью клиентскими лицензиями обходиться дешевле стандартной редакции почти не 1000$. Наверное поэтому Microsoft рекомендует не дожидаться появления новых версий, если покупка издания SQL Server 2000 для рабочих групп соответствует Вашим сегодняшним потребностям. К тому же, в рамках программы Software Assurance, можно будет произвести обновление до новой версии базы данных.
Клиентские лицензии для Workgroup Edition стоят практически столько же, как и для серверных версий. Поэтому, если Вы планируете в обозримом будущем перейти к серверной редакции, то можно сразу приобретать клиентские лицензии для стандартной редакции или для Enterprise Edition. По предварительной информации, для новой версии SQL Server 2005 лицензионная политика будет изменена и стоимость клиентских лицензий будет дифференцированной. Это изменение нужно учитывать, если в будущем планируется обновление версии до SQL Server 2005 Workgroup Edition, а особенно, если это будет одна из новых серверных редакций. Возможно, будет выгоднее сразу приобретать клиентские лицензии SQL Server 2005, как это практикуется сейчас, при добавлении клиентских лицензий к уже не продающемуся SQL Server 7.0, когда для него приобретаются лицензии аналогичной редакции SQL Server 2000.

Когда стоит использовать SQL Server 2000 Workgroup Edition

Меньшая цена лицензий, делает выгодным использование редакции для рабочих групп в приложениях не больших организаций. Workgroup Edition могут приобретать фирмы или их отдаленные офисы, которым необходима локальная база данных. Кроме того, эту редакцию можно использовать, если недостаточно возможностей Microsoft Desktop Engine (MSDE), или в целях консолидация нескольких настольных баз данных в единое, защищённое хранилище. Для больших компаний, продолжают оставаться очень важными такие традиционные возможности баз данных, как быстродействие, производительность и надежность. Но для приложений, используемых в большинстве не больших компаний, цена решения является одним из главных факторов. Фактически, речь идёт о возврате инвестиций в базы данных. Очень многие организации заинтересованы в том, что бы получить хорошие результаты с минимальной стоимостью.
Есть у SQL Server 2000 Workgroup Edition одно преимущество и над аналогичной редакцией в следующей версии. Это касается использования сервера баз данных в качестве издателя в репликации транзакций, моментальных снимков и репликации слиянием. В SQL Server 2005 Workgroup Edition появиться ограничение на число подписчиков, для репликации транзакций их может быть не более трёх, а для репликации слиянием не более двадцати пяти. В то же время SQL Server 2000 Workgroup Edition не имеет таких ограничений.

[В начало]

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

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

XML и базы данных
Рональд Буре
XML: Данная статья содержит описание взаимоотношений XML и баз данных и некоторых типов программного обеспечения, способного обрабатывать XML-документы в базах данных. Хотя это описание не претендует на полноту, я надеюсь, что основные вопросы использования XML с базами данных в ней, тем не менее, затронуты. Некоторое преувеличенное внимание, которое уделяется здесь реляционным базам данных, объясняется тем, что с этой технологией я знаком лучше всего...

[В начало]

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

SSIS: 'Log Events' and Pipeline events
Ashvini Sharma
I was about to write about data flow buffer size configuration properties but need to get this one out first so that we can refer to it

SSIS: DefaultBufferMaxRows and DefaultBufferSize
Ashvini Sharma
There're two properties on the Data Flow task that have piqued enough interest to cause this post. Note that while I'm describing numbers below, the SSIS team reserves the right to change them in response to our performance testing. There're no secrets here, most of this information is exposed plainly and some other (like MaxBufferSize) can be retrieved easily as well. This post hopefully puts it together

SqlDataReader performance tips
adam machanic
I just posted a few SqlDataReader performance tips in response to a newsgroup post; I think they're some pretty good tips, so I'll repeat them here

New Program Readies Industry for SQL Server 2005
Microsoft
Roundtable Q&A: The Ascend Program provides Microsoft industry partners and customers with deep technical training, tools and hands-on labs to accelerate the process of migrating to next-generation technology

The Windows Access Control Model Part 1
oshah
An introduction to ACL based security and the Windows access control model

Get the UpTime on a Windows System
dmihailescu
Get the UpTime on a Windows System

Select Trigger
Dejan Sarka
As we all know, in SQL Server 2000 we can define triggers only for Insert, Update or Delete commands. Sometimes we would like to have a trigger that would be fired on Select statement. This of course can't be achieved directly; still, there is a workaround

Preserving RS Trace Log Files with a Scheduled Job
Dejan Sarka
Couple of days ago I've been asked by a customer to preserve the Reporting Services trace log files. Reporting Services provides three trace log files, which are located at \Microsoft SQL Server\\Reporting Services\LogFiles. Trace logs are created daily, starting with the first entry that occurs after midnight (local time). The local time of the computer is used for naming the trace log. By default, trace logs are deleted after fourteen days.

Visio / Modeling Tool Wishes
Dejan Sarka
Before I express my wishes, let me explain how I currently use Viso 2003 EA. I am usually involved in projects in the design, mostly db design part. But many times, especially in BI projects, I do the functional specifications and app design as well. My tool of choice is Visio.

RS and OLAP Tips & Tricks Presentation
Dejan Sarka
As I promised in News on this site, I have uploaded my UG presentation. You can get some useful Reporting Services and OLAP tips together with all necessary code for demos if you download the presentation from here.

A Case Study of an Inexpensive OLAP Solution
Dejan Sarka
DW and OLAP solutions are traditionally expensive. Since MS SQL Server 7.0 the price for the tools went down. Still, the process of creating an Enterprise Data Warehouse and OLAP cubes can take a lot of time and swallow up a lot of money, so many medium-sized and smaller companies do not dare to start such a project. By the end of year 2004 the work on an OLAP project I was involved in successfully finished. Together with rest of the team we managed to effectively control the expenses for development and, as we hope the future will show, for maintenance of a smaller Data Warehouse and couple of OLAP cubes. As this experience might be useful for other BI developers, I am publishing a complete case study here

Getting NONEMPTYCROSSJOIN() Performance From NON EMPTY
BI Best Practices Blog
Here's an example of how this functionality can give you the performance gain of NONEMPTYCROSSJOIN when using NON EMPTY

The Difference Between NONEMPTY(), NONEMPTYCROSSJOIN(), NON EMPTY BEHAVIOR and NON EMPTY THRESHOLD
BI Best Practices Blog
Analysis Services uses two algorithms to remove empty cells: the 'old' one, which is slower but 100% reliable, and the 'new' one which is faster but can only reliably be used when there are no calculated members, custom rollups, etc. involved in the query. When you put a NON EMPTY clause on an axis, Analysis Services can use either of these algorithms; alternatively, to make sure you use the second algorithm in your query you can use the NONEMPTYCROSSJOIN function, but you must understand its limitations or you will get unexpected results

jTDS JDBC Driver 1.0.1 released
Gianluca Hotz Blog
The jTDS Project has released version 1.0.1 of the jTDS JDBC driver for SQL Server and Sybase.jTDS 1.0.1 is a minor release, containing fixes to all the bugs reported aginst release 1.0.

Natural vs. Surrogate Keys
Dejan Sarka
I am opening a very old question in this blog – natural vs. surrogate key. I prefer natural keys. But before starting forcing surrogate keys, let me explain what the expression "natural key" means to me

Oracle Developer Tools for Visual Studio .NET
oracle.com
The new Oracle Developer Tools for Visual Studio .NET is a tightly integrated "Add-in" for Visual Studio .NET that brings the power of the Oracle Database to .NET developers! Designed to be completely intuitive for database developers, your productivity will increase starting on day one. And if you are new to Oracle development, this is an easy way to learn!

SQL Server & Excel
Dejan Sarka
Using Excel file as a linked server usually causes some headache. Main reasons for the headache are

Problems with Identity and Generating Sequential Numbers Manually
Dejan Sarka
We can see three problems with the Identity property. SQL 6.5 had all three, SQL 7.0 two of them; SQL 2000 still has the last one

More Portable DTS Packages
Tito David
The popularity of DTS has continuously grown but it had and still has issues with portability. SQL 2000 offers a lot of alternatives to make DTS packages portable. I have tried the INI file approach and found that an INI file can only hold a limited amount of variables. The 'Query' Method, however, looks more promising.

jTDS: Open-source JDBC 3.0 middleware driver for SQL Server
Serdar Yegulalp
Data source drivers, such as Microsoft's Open Database Connectivity (ODBC) drivers, sit between one's programming language and a data source and provide a common way to connect to a data source and query it. Most programmers who use SQL Server to drive Web applications are familiar with the ODBC layer through VBScript or Java; Java uses its own middleware layer, called Java Database Connectivity (JDBC). However, Microsoft's JDBC for SQL Server hasn't been updated in a long time and isn't very well supported. Sun has JDBC middleware, too, but it isn't particularly functional either

SQL Server Data Mining Programmability
Bogdan Crivat
Learn more about the new APIs for data mining in SQL Server 2005, and get an introduction to several common development scenarios. (50 printed pages)

Step by Step: Program Microsoft SQL Server CE 2.0 Merge Replication Using .NET Compact Framework
Microsoft
In this exercise, you will use the .NET Compact Framework and SQL Server CE to configure merge replication, build an application user interface, subscribe to a SQL Server publication, modify and synchronize data, and resolve conflicts. (50 printed pages)

Formatted emails from SQL Server
Muthusamy Anantha Kumar
Collaboration Data Objects, also called CDO, is designed to simplify writing programs that create or manipulate Internet messages. CDO for Windows 2000 is an integral part of the Windows 2000 and higher series of operating systems. It is easy to send SMTP email from SQL Server using CDOsys. It is an alternate method to SQLMail. This article illustrates how to use CDOSys to send formatted emails from Query Analyzer and SQL Server Alerts

SQL Server Reporting Services with Oracle Data
Peter DeBetta's SQLBlog
I have been spending a lot of time of late getting a new reporting solution in place for a customer whose data is in Oracle on Unix. I'm happy to report that all is going well, and the biggest issues I am running into involve the use of SQL*Plus Worksheet - enough to make anyone shutter. My workaround is to use Notepad as the editor and SQL*Plus Worksheet for execution only

SQL Server Migration Assistant
Greg Low
It appears Microsoft have purchased DB Best (http://dbbest.com). Details are at: http://www.microsoft.com/sql/migration/ Looks pretty obvious what it's targeted at if you read the FAQ: "SQL Server Migration Assistant (SSMA) defines and automates all of the major steps in the database migration process. SSMA provides comprehensive assessment reports, one-click conversion of all schema and data, one-click conversion of almost all database-resident business logic, and automated testing of the converted code. All of these capabilities are made available from within a single-migration integrated development environment (IDE). Currently SSMA supports only a migration from an Oracle database to SQL Server 2000."

Editable DataGrid without link buttons
JeyKey
This article explains how to make an ASP.NET editable DataGrid

CodeSmith generated Audit Log Triggers
RichardRoe
CodeSmith template for creating Audit Log Triggers on SQL tables

Introducing Regular Expressions
Vasant Raj
Basic Regular Expressions with detailed examples

MVP Ron Talmage on DST, SQL Agent, and Log Shipping
KAREN'S SQL BLOG
Fascinating discoveries from Ron: "If a server is on Daylight Savings time, then for one hour per year, SQL Agent will not execute any scheduled jobs. That hour is the 'fall back' from DST to Standard, which in the US this year is October 31.

Mini-tutorial on timestamp
KAREN'S SQL BLOG
After posting Ron's discoveries about his discoveries related to Daylight Saving Time and log shipping, I decided to review the timestamp data type and write up a short "mini tutorial" for SQL eXTRA. Here it is

Professional reading from U of Waterloo profs
KAREN'S SQL BLOG
David DeHaan's paper on extending bottom-up compensation-based algorithms for calculating the usability of a view to answer a database query, where both query and view definition are multi-block SQL queries containing aggregation

SQL Reserved Words Overview
developer.mimer.com
The following table lists all words reserved in the SQL standard

Vendor-reserved Words
developer.mimer.com
With regard to the SQL-2003 standard. The following table lists the words reserved in DB2, MySQL, Oracle, PostgreSQL and SQL Server. We have compiled the list based on the documentation that accompanies the software packages.

Useful SQL-2003 Sites
KAREN'S SQL BLOG
During this week's Yukon Webcast bonanza, several of the presenters have referred to SQL-2003. Since I haven't been keeping as up-to-date on the new standard as I'd like, I did a bit of research and can recommend these URLs

SQL Server 2005 Recursive Functions
Dan Sullivan
SQL Server 2005 has added a new format for queries called a Common Table Expression or CTE. CTE’s are part of the SQL:1999 Specification and represent further compliance with this specification by SQL Server. This article will cover using one of the many capabilities of CTE’s, implementing recursive functions. A recursive function is a one that iteratively executes itself. Understanding how CTE’s implement recursive functions is the first step to understanding the full capabilities of CTE’s

The SQL Server High Performance Series
Dennis W. Forbes
Inefficiency is a gluttonous thief. It burglarizes your server rooms at all hours of the day and night, demanding virtually limitless hardware sacrifices to satiate its endless thirst for clock cycles and disk rotations. In return it punishes your users with reduced performance and reduced satisfaction, and devastates your solution's scalability.

Versatile High Performance Hierarchies in SQL Server
Dennis W. Forbes
A commonly modeled database design is the ubiquitous hierarchy: A relationship of items, all but the root having a single “parent”, with each having zero or more child nodes. Such a structure is often referred to as an “inverted tree” due to its visualized similarity to, not surprisingly, an inverted tree (Figure 1). Examples of such hierarchies include corporate reporting structures (Figure 2), geographical groupings, inventory tracking (such as when parts are assembled into components, which themselves might be combined into products, which might then become combined into shipping units, etc), auction listing categories, etc. The file system on our computers, a tree of folders and files, is a common example of such a hierarchical structure

The Revolution in Database Architecture
Jim Gray
Database system architectures are undergoing revolutionary changes. Most importantly, algorithms and data are being unified by integrating programming languages with the database system. This gives an extensible object-relational system where non-procedural relational operators manipulate object sets. Coupled with this, each DBMS is now a web service. This has huge impli-cations for how we structure applications. DBMSs are now object containers. Queues are the first objects to be added. These queues are the basis for transaction processing and workflow applica-tions. Future workflow systems are likely to be built on this core. Data cubes and online analytic processing are now baked into most DBMSs. Beyond that, DBMSs have a framework for data mining and machine learning algorithms. Decision trees, Bayes nets, clustering, and time series analysis are built in; new algo-rithms can be added

Sequential File Programming Patterns and Performance with .NET
Peter Kukol; Jim Gray
Programming patterns for sequential file access in the .NET Framework are described and the performance is measured. The default behavior provides excellent performance on a single disk – 50 MBps both reading and writing. Using large request sizes and doing file pre-allocation when possible have quantifiable benefits. When one considers disk arrays, .NET unbuffered IO delivers 800 MBps on a 16-disk array, but buffered IO delivers about 12% of that performance. Consequently, high-performance file and database utilities are still forced to use unbuffered IO for maximum sequential performance. The report is accompanied by downloadable source code that demonstrates the concepts and code that was used to obtain these measurements

Model Behavior
Dorian Pyle
The model with the highest "hit rate" doesn't always win. Not all models are created equal. Given a choice between a model that makes fewer mistakes in predicting classes and one that makes more, which would you prefer? Which would be the best model: the one that has the higher hit rate (correct predictions), or the one that has the lower hit rate?

SQL Server I/O: Creating XML Output
Buck Woody
My grandpa used to say, "Life is short. Eat dessert first." I'll take that let's-do-the-easy-stuff-first approach in this week's installment of my XML series on SQL Server Input and Output

Using VBScript to Automate Tasks
Haidong Ji
The key to maintain a smooth, efficient SQL Server environment is to be proactive. We need to constantly look for ways to tighten and harden SQL servers and improve performances. Using proactive monitoring, when we see any signs of abnormal behavior, we will investigate and see what the real problem is. We will find a problem and solve it before a problem finds us. We can nip the problem in the bud, so to speak

Implement search paging queries
TechRepublic
When building custom search engines, developers often have problems implementing some kind of paging functionality. Learn how you can implement search paging queries using the pseudocolumn ROWNUM

SQL Server 2005: Recursive Hierarchies to XML - CTEs vs. UDFs
Christian Wade's Blog
Suppose we have a recursive hierarchy stored in a relational database and we want to write it to XML. This might be for a variety of reasons – e.g. as a pre-cached input to a UI control, to export to another system using a pre-defined format, etc.

Client Callbacks
Christian Wade's Blog
My colleague Jamie Thomson posted a reference to Tim Sneath’s post on Google Suggest. This is a pretty smart bit of functionality that can be implemented using client callbacks.

Surrogate Keys
Ralph Kimball
Keep control over record identifiers by generating new keys for the data warehouse

Unknown Member and Analysis Services 2005
Christian Wade's Blog
I once wrote an add-on for the SQL Server Accelerator for Business Intelligence to provide unknown-member functionality. I was therefore naturally interested when I heard that it comes out-of-the-box with Analysis Services 2005.

Distinct Count in Analysis Services 2005
Christian Wade's Blog
A problem with the DistinctCount aggregate function for measures in Analysis Services 2000 is that it will not aggregate at leaf level if filtering only on a subset of the members in a level (or attribute). A customer or ours is all too familiar with this limitation. One of the enhancements to MDX in Analysis Services 2005 is that we can use sets in the where clause. This overcomes the problem as illustrated by the following screenshots.

Semi-Additive Measures in Analysis Services 2005
Christian Wade's Blog
The new aggregation functions provided out-of-the-box with Analysis Services 2005 are fairly well publicised, but I feel they still warrant a blog post.

UDM, New Dimension Types and Analysis Services 2005
Christian Wade's Blog
One of the key goals of Analysis Services 2005 is to “bring together the best of both relational and OLAP reporting into a single Unified Dimensional Model”. This is a very ambitious goal and most would agree that it would be difficult to fully achieve. However, Analysis Services 2005 certainly does take huge strides in this direction.

A Vision for Management of Complex Models
Philip A. Bernstein; Alon Y. Levy; Rachel A. Pottinger
Many problems encountered when building applications of database systems involve the manipulation of models. By "model," we mean a complex structure that represents a design artifact, such as a relational schema, object-oriented interface, UML model, XML DTD, web-site schema, semantic network, complex document, or software configuration. Many uses of models involve managing changes in models and transformations of data from one model into another. These uses require an explicit representation of "mappings" between models. We propose to make database systems easier to use for these applications by making the "model" and "model mapping" first-class objects with special operations that simplify their use. We call this capability management.

A Semantics for Model Management Operators
Sergey Melnik; Philip A. Bernstein; Alon Halevy; Erhard Rahm
Model management is an approach to simplify the programming of metadata-intensive applications. It offers developers powerful operators, such as Compose, Extract, and Merge, that are applied to models, such as database schemas or interface specifications, and to mappings between models. To be used in practice, these operators need to be implemented for particular schema definition languages and mapping languages. To guide that implementation, we need a language-independent semantics that tells what the operators should do. In this paper we develop a state-based semantics of the operators. That is, we express the effect of applying the operators to models in terms of what the operators do to instances of these models. We show that our semantics captures previously-proposed desiderata for the operators. We study formal properties of the operators, such as commutativity, associativity, uniqueness of results, and how the cardinality of the results corresponds to that of the inputs. Finally, we specify the state-based semantics of the operators in Rondo, the first prototype model-management system

[В начало]

ФОРУМ SQL.RU

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

Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
Кто на чем пишет клиентов под SQL Server?
Задай вопрос разработчику MsSQL!
Больше книг хороших и разных!
Зачем вообще нужен primary key ?!?
Непонятности с использованием XLOCK хинта в select
MD5,SHA1 на T-SQL
Число в строку по маске
База упала, а бэкапа нетути
Можно ли MSDE использовать как
Построчный обход таблиц
Почему сервер не воспринимает строку состоящую из '\'и перевода строки и возврата каретки?
Администраторы баз данных, защищайте свои сервера!
Access+SQL тормозит поиск
Удаление столбца
Возможно ли вместо имен столбцов указать переменную
Странный глюк с insert
Временная таблица и серверный курсор
Экспорт в Fox-овские таблицы
проблема с триггером (INSERTED, DELETED)

[В начало]

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

Есть мемберы SQL PASS?
Тормозит сохранение DTS
Программа для одновременного запуска двух батчей (отладка deadlocks)
Переименование Роли
Сужение объема полнотекстового поиска
Как узнать часовой пояс?
Выгрузка в paradox. Проблемы с кодировкой.

[В начало]

КНИГИ

Базы данных: проектирование и использование. Учебник

Диго С.М.

ISBN: 5-279-02571-2, Издательство: Финансы и статистика, Год выпуска: 2005, Тип переплета: твердый, Тираж книги: 5000, Формат книги: 60х88/16, Количество страниц: 592, Цена: 353 р.

Даны общая характеристика и классификация баз данных. Рассмотрены этапы проектирования баз данных. Особое внимание уделено методологии построения ER-моделей и использованию CASE-систем при проектировании баз данных. Описаны табличный язык запросов и язык SQL, возможности получения отчетов и создания экранных форм, способы обеспечения целостности и безопасности данных, особенности распределенных баз данных. Для студентов вузов, обучающихся по специальностям «Прикладная информатика в экономике», «Прикладная информатика в менеджменте», а также для специалистов в области разработки экономических информационных систем.

[В начало]


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

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

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



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


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.winsoft.sqlhelpyouself
Отписаться

В избранное