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

MS SQL Server

  Все выпуски  

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


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


#158<<  #159

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.Матричная классификация элементов многомерного куба
1.2.Счётчики производительности SQL Server и Windows (продолжение)
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Новые и обновлённые технические статьи Microsoft
2.3.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.ПОЛЕЗНОСТИ
4.1.Обработка баз данных на Visual Basic .NET

СОВЕТЫ

Матричная классификация элементов многомерного куба

Автор: Александр ДЕНИСЕНКО (aden@online.ru, aledin@academy.ru)

Постановка задачи. При построении координаты многомерного куба OLAP задаётся иерархия элементов, то есть распределение заданного множества по классам и восходящее (иерархическое) объединение классов в объемлющие классы. При загрузке куба используется так называемая фактовая таблица, строки которой содержат ссылки на атомарные элементы каждой из координат. Например, это могут быть сведения о продаже товара 3 в магазине 17 в день Х. Здесь важно подчеркнуть, что ссылка возможна на единственный элемент координаты!

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

Однако во многих приложениях (в частности, в практике финансового анализа, технологических цепях, задачах управления персоналом и т.п.) нормой оказывается отнесение элемента к нескольким классам одновременно. Например, шоколадный ликер входит как в класс напитков, так и в класс кондитерских изделий. Господин N является как сотрудником предприятия M, так и владельцем огорода на территории Т.

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

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

Предлагаемое решение

Интерфейсная часть. Предлагается использовать обычный проводник Микрософта, причем элементу соответствует файл, а классу - папка. Средствами SQL2000 иерархическая структура папок и файлов преобразуется в координатную таблицу куба OLAP. Ничто не мешает одному и тому же файлу находиться в нескольких папках. Наблюдатель при этом пользуется обычными для него приёмами копирования и перемещения файлов из списка множества по классам. Примечание: в файловой системе NTFS следует использовать разные тома для исходного перечня элементов и динамических классов, так как в этом случае перемещение файла мышкой реализовано как копирование, то есть размножение элемента, что позволяет относить элемент к нескольким разным классам, перемещая его поочерёдно в несколько папок для соответствующих классов).

Имя файла - название элемента, имя папки - класс. Так, возникнут папки для напитков и кондитерских изделий, в каждой из которых окажется файл с названием шоколадного ликёра. Предполагается, что сотрудник с элементарными навыками в состоянии копировать и перемещать файлы по папкам.

Коррекция координатной таблицы. В таблице, содержащей сведения о каждом элементе координаты, предлагается завести дополнительное поле - к какому классу относится данный элемент. Из условия многозначности принадлежности элемента к классу предлагается использовать форму записи многозначных отображений (в терминах Микрософт - форма 1NF) - то есть в строке описания элемента перечислить классы, к которым он относится.

Технологический приём: в координатной таблице заводим поле для класса, в котором перечисляем классы, к которым принадлежит элемент.

Модификация куба. Создаем динамические (calculeted member в терминах [1]) элементы куба, описание которых на языке MDX содержит признак принадлежности элемента к классу (вхождение подстроки с название класса в строку координатной таблицы - функция INSTR поддерживается MDX Микрософт, но можно использовать и что-нибудь аналогичное).

Итоги. Наблюдатель мышкой раскидывает товары (сотрудников и т.п.) между классами. Нажимает кнопку обновления данных. По кнопке автоматически (невидимо для наблюдателя) вызывается командный файл, который запускает DTSпакет, преобразующий файловую структуру каталога элементов в таблицу SQL. Далее динамические элементы кубы при его обновлении автоматически покажут суммарные сведения по любым классам, указанным для наблюдателя в кубе (возможно, с обновлением виртуального куба или координаты - это зависит от технолога).

P.S. В практике редко осознаётся одна возможность пакетов DTS в [1]: это вариант WRITE FILE. Он очень удобен при формировании координатной таблицы из каталога. Суть его в том, что содержимое, указанное во втором столбце таблицы, автоматически заносится в файл, создаваемый с путём, обозначенным в первом столбце таблицы - по непонятным для автора причинам этот чрезвычайно сильный вариант не рассматривается в известной литературе и материалах, включая 5-дневный фирменный курс Микрософт 2092, посвящённый исключительно DTS. Впрочем, ещё одна трудность возникает с формированием таблицы каталога по его файловой структуре - самый простой способ видится в использовании процедуры xp_cmdshell, в которую не просто подставить параметры - имя текущей папки, но четыре кавычки решают проблему. Использование же VB требует дополнительных затрат, хотя и даёт более корректный результат в условиях оперативной динамики классов.

Проблемы. Предложенное решение не позволяет раскрывать содержимое класса при просмотре наблюдателем содержимого куба. В [1] существует ограничение на число динамических элементов куба в 64 тысячи.

Ссылки:

[1]. SQL2000. Электронная документация.

[В начало]

Счётчики производительности SQL Server и Windows

1.    Введение
2.    Анализ узких мест
3.    Счётчики
4.    Типы счётчиков
5.    Память
5.1. Поиск узких мест использования памяти Windows 2000
5.2. Наборы счётчиков мониторинга памяти
5.3. Системная таблица sysperfinfo
5.4. Диагностика всплесков отложенной записи
6.    Процессор
6.1. Поиск узких мест использования процессора Windows 2000
6.2. Набор счётчиков мониторинга процессоров
7.    Дисковая подсистема
7.1. Поиск узких мест использования дисковой подсистемы сервера Windows 2000
7.2. Набор счётчиков мониторинга дисковой подсистемы

8. Сеть

Счётчики производительности сети позволяют контролировать работу сетевых интерфейсов и протоколов по всем уровням модели Open Systems Interconnect (OSI), от физического до прикладного.

Уровень OSI Объекты производительности Примеры счётчиков
Application, Presentation Browser, Server, Redirector и Server Work Queues
Для наблюдения за сервером служат счетчики объекта "Server", а для наблюдения за компьютером-клиентом пользователя - счетчики объекта "Redirector". (Некоторые процессы уровня приложения, такие как веб-серверы, могут обладать собственными счетчиками, служащими для наблюдения за передачей данных на этом уровне).
Redirector\Current Commands
(Активных команд)
Redirector\Network Errors/sec
(Сетевых ошибок/сек)
Redirector\Reads Denied/sec
(Отказов на операцию чтения/сек)
Redirector\Writes Denied/sec
(Отказов на операцию записи/сек)
Redirector\Server Sessions Hung
(Зависаний сеансов сервера)
Server\Server\Sessions Errored Out
(Сеансов, закрытых из-за возникновения ошибки)
Server\Work Item Shortages
(Нехваток рабочих элементов)
Server\Pool Paged Peak
(Выгружаемый пул (пик))
Server\Pool Nonpaged Failures
(Отказов невыгружаемого страничного пула)
Session NBT Connection (NBT - сокращение от NetBT, что означает NetBIOS поверх TCP/IP; NetBIOS это основная сетевая система ввода - вывода) NBT Connection\Bytes Total/sec(Всего байт/сек) - скорость, с которой данный компьютер получает или посылает байты через подключение NBT к какому-либо удаленному компьютеру. Подсчитываются все байты, полученные или посланные данным компьютером через конкретное подключение NBT. Тип: PERF_COUNTER_BULK_COUNT
Transport Объекты протоколов: TCP - Transmission Control Protocol; UDP - User Datagram Protocol, NetBEUI для NetBIOS, AppleTalk (установленные дополнительные протоколы) Protocol_layer_object\Segments Received/sec
(Получено сегментов/сек)
Protocol_layer_object\Segments Retransmitted/sec
(Переотправлено сегментов/сек)
Protocol_layer_object\Segments/sec
(Сегментов/сек)
Protocol_layer_object\Segments Sent/sec
(Отправлено сегментов/сек)
Network Network Segment (Сегмент сети появляется после установки драйвера сетевого монитора, IP для протокола интернет, NWLink IPX/SPX для поддержки Internetwork Packet eXchange / Sequenced Packet Exchange). Network Segment\% Network Utilization(Процент утилизации сети), тип: PERF_COUNTER_MULTI_TIMER
Data Link, Physical Network Interface
Эти счетчики поддерживаются драйвером и могут иметь неточные или нулевые значения из-за проблем с драйвером
Network Interface\Bytes Total/sec
(Всего байт/сек)
Network Interface\Bytes Sent/sec
(Отправлено байт/сек)
Network Interface\Bytes Received/sec
(Получено байт/сек)

Значения счётчиков производительности сети зависят от текущей производительности других компонент сервера, и наоборот, производительность других компонент может зависеть от компонент сети. Например, если наблюдается увеличение обмена страниц с одновременным уменьшением Server\Bytes Total/sec, это говорит о нехватке оперативной памяти для обеспечения сетевых операций. Сетевые интерфейсы и протоколы активно используют невыгружаемую память, а избыточный свопинг может быть спровоцирован как раз тем, что большая часть ОЗУ была отдана для обеспечения сетевых операций. В таком случае, для сервера баз данных, который также использует выгружаемую память, её может остаться слишком мало. Поэтому, наряду со счётчиками сети, рекомендуется одновременно измерять и другие счётчики для кэша, дисковой подсистемы, памяти, процессоров и системы, которые уже рассматривались в предыдущих главах настоящей статьи:

Cache\Data Map Hits %
Cache\Fast Reads/sec
Cache\Lazy Write Pages/sec
Logical Disk\% Disk Space
Memory\Available Bytes
Memory\Nonpaged Pool Allocs
Memory\Nonpaged Pool Bytes
Memory\Paged Pool Allocs
Memory\Paged Pool Bytes
Processor(_Total)\% Processor Time
System\Context Switches/sec
System\Processor Queue Length
Processor(_Total)\Interrupts/sec

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

[В начало]

8.1. Поиск узких мест сети

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

Объект \ счетчик Рекомендуемое пороговое значение Комментарий Тип
Redirector\Current Commands
(Активных команд)
<= число сетевых плат Подсчитывает количество запросов к Перенаправителю, которые ожидают обработки в настоящий момент. Если это число много больше, чем число плат сетевых адаптеров, установленных на этом компьютере, то это означает, что сеть (сети) и/или сервер (серверы), к которым осуществляется доступ, серьезно перегружены. Вы можете увеличить максимально допустимую задержку для сетевых команд в ключе системного реестра MaxCmds
HKLM\ SYSTEM\ CurrentControlSet\ Services\ lanmanserver\ parameters
Значение по умолчанию - 5.
PERF_COUNTER_ RAWCOUNT
Server\Bytes Total/sec
(Всего байт/сек)
< максимальная скорость передачи в сети Количество байт, которое сервер послал или получил через сеть. Это значение отражает общую занятость сервера.
Если сумма значений счетчиков "Всего байт/сек" для всех серверов приближается к максимальной скорости передачи данных по сети, возможно, следует разделить сеть на сегменты.
PERF_COUNTER_ BULK_COUNT
Server\Work Item Shortages
(Нехваток рабочих элементов)
<= 3 Work Item (Рабочий элемент) - место, где сервер хранит SMB (Server Message Block). Счётчик показывает количество ответов STATUS_DATA_NOT_ACCEPTED (данные не приняты) во время получения индикации. Это происходит в том случае, если нет доступных рабочих элементов и невозможно выделить новые рабочие элементы для обслуживания поступившего запроса. Показывает, не нуждаются ли в изменении параметры сервера InitWorkItems или MaxWorkItems.Количество колеблется между минимальным и максимальным значением, которое зависит от конфигурации сервера и объема памяти. Если встречаются нехватки рабочих элементов, это может быть вызвано перегрузкой сервера, и если значение достигает указанного порога, попробуйте изменить значения реестра InitWorkItems и MaxWorkItems:
HKLM\ SYSTEM\ CurrentControlSet\ Services\ LanmanServer\ Parameters
Значение MaxWorkItems может изменяться от 1 до 512. Подробную информацию об этом можно получить в Microsoft Knowledge Base
Внимание! Внесение в реестр неправильных изменений может серьезно повредить систему. Перед изменением реестра создайте резервную копию всех важных данных.
PERF_COUNTER_ COUNTER
Server\Context Blocks Queued/sec
(Поставленных в очередь контекстных блоков/сек)
<= 50ms Частота, с которой рабочие контекстные блоки попадают в очередь FSP (file system process) данного сервера, где они ожидают обработки.Если значения этого счетчика долго превышает 50 миллисекунд, служба Server является узким местом для удаленных клиентов, которые запрашивают I/O на сервере. PERF_COUNTER_ COUNTER
Server Work Queues\Queue Length
(Длина очереди)
<= 4 Текущая длина рабочей очереди сервера для данного процессора. Если в течение длительного времени длина очереди больше 4, то это свидетельствует о перегруженности процессора. Этот счетчик представляет собой конкретное текущее значение, и не является средним значением по некоторому интервалу времени.
Показывает нормальное значение в байтах величины обмена сервера с клиентом в сети для данного процессора. Это значение - мера загруженности сервера.
PERF_COUNTER_ BULK_COUNT
Server Work Queues\Work Item Shortages
(Нехваток рабочих элементов)
= 0 Каждый запрос клиента представлен на сервере в качестве рабочего элемента (work item), и сервер поддерживает пул доступных рабочих элементов для каждого процессора с целью ускорения обработки. Рабочий элемент - место, где сервер хранит SMB (Server Message Block). Если в течение длительного времени этот счетчик больше 0, то следует увеличить значение MaxWorkItems в системном реестре для службы сервера.
HKLM\ SYSTEM\ CurrentControlSet\ Services\ LanmanServer\P arameters\ Maxworkitems
Данное значение всегда будет равно 0 для Blocking Queue.
PERF_COUNTER_ RAWCOUNT
Network Interface\Output Queue Length
(Длина очереди вывода)
<= 2 Количество исходящих пакетов в очереди. Если эта длина больше 2, то это означает, что возникают задержки, поэтому необходимо обнаружить причину их возникновения и устранить её, если это возможно. При длине очереди большей двух, адаптер не сможет поддерживать оптимальный темп передачи. PERF_COUNTER_ RAWCOUNT
Network Interface\Bytes Total/sec
(Всего байт/сек)
65 % от максимальной пропускной способности сети Скорость, с которой происходит получение или посылка байт через сетевой интерфейс, включая символы обрамления (framing characters). Этот счётчик должен иметь высокое значение, что указывает на большое количество успешных передач. Сравните это значение со значением счетчика Network Interface\Current Bandwidth, отражающего пропускную способность адаптеров. Если Вы видите что норма Bytes Total/sec приближающуюся к максимальной скорости передачи, повышается вероятность коллизии в сети. Это, в свою очередь, воздействует на производительность, увеличивая время ожидания прохождения пакета по сети. В этом случае, можно рассмотреть возможность увеличения пропускной способности сети или её сегментации. Например, при использовании более быстрого Ethernet адаптера на 100 мегабит/сек, если норма байт, переданных в секунду приближается к 65 процентам от максимальной пропускной способности сети, производительность может улучшится если использовать Гигабитный или более быстрый Ethernet-адаптер, или разбить сеть на сегменты (меньшие сети). PERF_COUNTER_ COUNTER
Network Segment\% Network Utilization
(% использования сети)
<= 40 % Индикатор загрузки сети относительно её полной пропускной способности. Пороговое значение зависит от топологии и инфраструктуры сети. Если значение счетчика для сетей Ethernet превышает 30-40 процентов, коллизии могут вызывать неполадки. Величина порога разная для разных типов сетей и проще всего её определить эмпирическим путём. PERF_COUNTER_ MULTI_TIMER

При контроле счётчиков протоколов, стоит в первую очередь беспокоится о величине трафика. Для этого, используйте счётчики: Bytes Total/sec, Datagrams Received/sec, Datagrams Sent/sec, Frames Received/sec и Frames Sent/sec. При рассмотрении счётчиков передачи, учитывайте пропускную способность вашей сети. Значение Bytes Total/sec не должно быть близко к пропускной способности сети.
Ниже представлен список типичных объектов для протокола, контролируя которые Вы получите информацию об использовании сети:

Для протокола TCP/IP, используйте объекты TCP, IP, UDP и Internet Control Message Protocol (ICMP). Чтобы контролировать трафик на сетевом уровне, используйте счетчики объекта IP Datagrams Forwarded/sec, Datagrams Received/sec, Datagrams/sec и Datagrams Sent/sec. Для контроля на транспортном уровне, используйте счетчики TCP Segments Received/sec, Segments Retransmitted/sec, Segments/sec и Segments Sent/sec. ICMP используется для поддержания таблиц маршрутизации и диагностирования проблем Объект производительности ICMP состоит из счетчиков, измеряющих частоты отправки и получения сообщений по протоколу ICMP. Он также включает счетчики наблюдения за ошибками протокола ICMP.UDP используется для DNS имён хостов и определения IP адресов, а также для разрешения Network Basic Input/Output System (NetBIOS) имён сервером WINS. Величина передачи и получения сегментов по сети должна быть высокой, иначе, постарайтесь уменьшить широковещательный трафик. UDP\Datagrams/sec указывает на величину широковещательного трафика (отправка и получение), и его значение должно быть низким. Если величина повторных попыток передачи высока, могут иметься аппаратные проблемы, поэтому Вы должны далее исследовать счетчики системы, например - процессора. Счетчики объектов ICMP и UDP, полезны для более подробного наблюдения за передачей данных по протоколу TCP/IP. Используйте пороговые значения, чтобы определить, какие счетчики выходят из допустимого диапазона и могут указывать на проблемы.

Для того чтобы контролировать протокол NWLink, используйте следующий три объекта:

  • NWLink IPX - для компьютеров, поддерживающих связь по протоколу IPX.
  • NWLink NetBIOS - для компьютеров, поддерживающих связь по протоколу IPX.
  • NWLink SPX - для компьютеров, соединяющихся по протоколу SPX.

Каждый из этих объектов имеет следующие счетчики, которые предоставляют информацию о сетевом трафике:

  • Bytes Total/sec
  • Frame Bytes Sent/sec
  • Frame Bytes Received/sec
  • Frames Rejected/sec

В активно использующейся сети счётчик Bytes Total/sec должен иметь высокое значение, Frames Rejected/sec низкое.
Примечание: Имейте в виду, что счетчики кадров (фреймов) этих объектов всегда возвращают нулевые значения.

Для протокола NetBEUI, используйте объекты NetBEUI и NetBEUI Resource. Контролируйте Bytes Total/sec и другие счетчики, например: NetBEUI\Frame Bytes Received/sec и NetBEUI\Frame Bytes Sent/sec. Кроме того, проследите за ростом Frames Rejected/sec. Также следите за NetBEUI Resource\Times Exhausted, который указывает, как используются буфер ресурса. Информация об объектах ресурса также регистрируется в журнале event log.

Для протокола AppleTalk, используйте счетчики объекта AppleTalk. Для информации об этих счетчиках, см. раздел "Performance Counter Reference" в Windows 2000 Resource Kit companion CD.

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

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

[В начало]

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

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

Разноцветный DBGrid. 8 лет спустя
Андрей Финк
Почти восемь лет назад, появилась на свет Borland Delphi 1. Все эти восемь лет программисты во всем мире, связанные с базами данных, решали несколько сложнейших задач, которые (вместе с решениями) описаны здесь...
Трансляция сводных таблиц в беспроводных сетях
Intersoft Lab
В этой статье рассматривается проблема эффективной трансляции бизнес-данных, представленных в виде сводных таблиц, по беспроводным каналам связи...
Доставка OLAP-отчетов удаленным пользователям
Владимир Некрасов
Укрупнение бизнеса, расширение региональных сетей современных предприятий, развитие электронной коммерции и медиа-технологий делает все более актуальной задачу доставки информации и отчетов удаленным пользователям. При этом преследуются следующие цели...

[В начало]

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

"Connection Could Not Be Established" Error Message When You Use Named Pipes to Connect to a Windows NT 4.0-Based Computer That Is Running Either SQL Server 2000 or SQL Server 7.0
FIX: "Login Failed for User 'SYSTEM'" Error When You Use OPENROWSET Function Without UserName
FIX: Additional SQL Server Diagnostics Added to Detect Unreported I/O Problems
FIX: NON EMPTY Keyword Phrase May Not Remove All Empty Members from a Virtual Cube
FIX: Specify the Analysis Services Client Locale on the Connection String
FIX: You Receive an Incorrect Result in a MOLAP Cube That Uses the Float Datatype Column for a Measure
HOWTO: Retrieve @@IDENTITY Value Using JDBC
INF: List of Version Numbers of ODBC Driver Manager and SQL Server
INF: SQL Server 2000 Supports IPSec on Windows Server 2003 Cluster
INF: SQL Server 7.0 and SQL Server 2000 Logging and Data Storage Algorithms Extend Data Reliability
INFO: SQL Server Net-Libraries Support for the QLogic Card
Post a Question to the Microsoft SQL Server Newsgroups
PRB: Call to SQL Stored Procedure Returns 'Invalid Column Name'
PRB: Distributed Query Against Oracle 8.x Fails
SQL Server 2000 High Availability Series Chapter Discusses a Configuration That Is Not Supported
You May Receive an Error Message After You Run an MDX Query That Contains a User-Defined Function

[В начало]

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

What's new in SQL Server Yukon
Euan Garden
Yukon is Microsoft's codename for the next version of SQL Server, due to be released in 2004. Tim Anderson talks to Euan Garden, Microsoft's Product Unit Manager for SQL Server Tools. "The XML-based technologies are huge. The new XML data type, the new XQuery-based technologies"
Where Do I Want To Go Today? - Bidirectional Indexes
Steve Jones
Taking a note from Microsoft's own page, I've decided to share some of my wishes for where I want SQL Server to go. Today. Meaning this is what I'm looking for now, the things that I'd like to see implemented in future releases. Now I missed the Yukon preview and haven't read too terribly much on it, so I may be asking for something that's coming. If it's not under NDA, let me know. Otherwise I hope to get some feedback about whether you'd like to see this feature or not. Or maybe you've got something I've forgotten on this feature. Either way let me know. I've got a few and I'm splitting them up to keep comments focused on this one feature. If you've got a wish, send it to me with a description. I'll credit you (if you want) and add my comments before dropping it out there in front of everyone.
Creating a PDF from a Stored Procedure
M Ivica
This article explains how to create a a stored procedure that will in turn create a simple column based report in PDF without using any external tools or libraries (and their associated licensing costs!).
Examining SQL Server's I/O Statistics
Andrew Novick
Reading and writing to the disk is the heart of what any database management system does, SQL Server included. Input/Output (I/O) performance can make or break an application. This article discusses the diagnostic tools that can be used to examine SQL Server's I/O statistics so that you can make fact-based judgments about disk configurations.
SQL Server Security: Pros and Cons of Application Roles
Brian Kelley
Application roles aren’t talked about frequently when database roles are discussed. The idea behind applications roles is a valid one: if a user comes through a particular application (and that application only), there should be a mechanism where the user gains privileges specific to that application. For instance, if I have a call tracking system, all users may need SELECT rights against tables for ad hoc queries. However, the users should not have any means to edit the tables unless they come through my special call tracking system. I expect the data to be handled in a certain way and I don't want anyone manipulating data outside of my application. But how can I give users the ability to only read data in one context yet modify data in another? One answer is with the application role
Enable Logical Object Representation in Your Database
Sergey Savouchkine
This article discusses the three properties (complex data, type inheritance, and object behavior) that characterize the object-oriented database management system and explains how two object-relational languages (SQL3 and Zigzag) compare when used within each property
Populate a Normalized Table with Data from an Unnormalized Table
Rajender Dhanwada
Say you wanted to transfer data from an unnormalized source table in Excel (a worksheet) to SQL Server
Implement Optimistic Concurrency
Bob Beauchemin
Choose the appropriate level of protection to prevent update anomalies. A database must serve up to tens of thousands users simultaneously while presenting a faзade to each user that he or she is the only one accessing the database. SQL Server, DB2, and Sybase maintain this faзade by locking data when one user updates it, making all other users wait until the original user is finished before they can "see" the data. Oracle maintains the single-user faзade by versioning the data—that is, allowing the user to see a consistent view of it as of a specific point in time. Whether your database uses locking or versioning, serving multiple users as though each one owns the database can raise concurrency issues—most often when more than one user tries to read and update the same row at approximately the same time. I'll explain the options you have for using the DataSet class in VB.NET to avoid these problems in your applications
Manage Data Easily
Fabio Claudio Ferracchiati
Use the DataSet class to manage data you retrieve from a database or an XML source and display it in a DataGrid. ADO.NET—the new version of the ADO library that the .NET Framework provides—introduces a revolutionary class called DataSet. The DataSet is an in-memory representation of one or more database entities, such as tables, columns, and relations. It's also much more: It manages XML data easily, allowing you to load an XML schema with related data and create an internal structure of tables, columns, and rows. You access data within the DataSet in the same way, whether you retrieve it from a database or an XML source. Moreover, the DataSet class provides a history state of its data that's useful for updating database tables and XML sources. This feature lets ADO.NET's DataAdapter object analyze the state of DataSet records to understand which data must be deleted from, added to, or changed in the data source. For example, you could show records "to be deleted" in a DataGrid and have the application ask for confirmation before removing them from the data source
VBScript Class to Return Backup Information
Bruce Szabo
In the first part of this series a script was used to query an SQL server for databases that were being backed up as part of the maintenance plans. This allows one to determine if a database is part of a maintenance plan. It would, in most cases, be nice to have the pertinent backup information on hand. The following class will return the relevant backup information from the maintenance plan so it can be viewed in a more user friendly manner.
Returning a Subset of a Recordset
Jon Winer
Stateless programming can be tricky... In case you ever need to return a specified subset of a query without first returning the entire recordset, here's a method
MSDE 2000 for Developers Using Visual Studio .NET
This download will extract files necessary to install the latest version of MSDE 2000 for Visual Studio .NET customers. This version of MSDE includes up-to-date security features, including protection from the W32.Slammer worm.
Check the isolation level of any SPID
Paul Wehland
By default, each SQL Server 2000 (I'm using SP3a) SPID has a Transaction Isolation Level of 'READ COMMITTED'. You can easily check your own Transaction Isolation level by executing DBCC USEROPTIONS. You will see isolation level in the set option column, and its current setting in the Value column. This will show up only if you execute SET TRANSACTION ISOLATION LEVEL 'nnn'. If you do not see this row, then you are running at the default isolation level of READ COMMITTED. DBCC USEROPTIONS is good only for your own spid
Data migration script for static table's data
Rajasekhar Sahitala
Suppose that you have an application in which you have a table containing static data and you need this data whenever you recreate the database. Using the script given below, you can create a batch of insert statements that you can keep in your database creation script and start using the database after the database creation without reloading any data. It has been tested on SQL Server 7.0
Use the firehose cursor
Barrie Sosinsky
A cursor is an object that specifies a row within a set of data. Cursors let you move data within a set, update, and delete data. SQL Server supports several types of cursors, but one read-only, non-scrollable cursor that is specially optimized for fast performance and worthy of note is the firehose cursor. You serve up the firehose cursor with a FAST_FORWARD command, for sequential access and forward traversal or your database records. The firehose cursor is the default cursor type for Recordset objects when that Recordset is defined with the Execute method for Command and Connection objects. The firehose mode refers to a connection that is maintained for as long as data can be returned. A server sends the data in a continuous stream, and does not wait for client requests using this kind of cursor. The reason that this cursor is fast is that it only requires data to be read, and there are no updates required by the cursor in its operation
Reseeding identities in SQL Server
Baya Pavliashvili
Reseeding identities in SQL Server IDENTITY columns are commonly used as primary keys for SQL Server tables. If you're not familiar with IDENTITY columns, they are automatically incremented columns with numeric data types, such as INT, BIGINT, FLOAT, etc
Generating a SQL Server population routine
Baya Pavliashvili
In the early stages of application design DBA or a developer creates a data model. Unfortunately many models work very well with a handful of rows but fail miserably when the application grows by leaps and bounds. This is why it is important to populate your data model with data and stress test it prior to making it available for users. Test data doesn't have to be perfect; indeed, you can duplicate the same record, or a few different records, to test the performance of your queries

[В начало]

ФОРУМ SQL.RU

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

Новые упражнения на http://sql.ipps.ru
The publication 'XXX' does not exist. (Snapshot agent)
Как у вас организована система прав на доступ к данным?
Проверка производительности SQL Server?
Первоначальная синхронизация в ручную (репликация сведением)
Microsoft SQL Server "Yukon" Beta1 released
DTS: таблица=>Excel
Блокировка таблицы при выполнении SP?
Как динамическим SQL создать процедуру в нужной БД?
простой запрос а работает не так ....
по триггеру
А кто нибудь знает какой-нибудь буржуйский продукт, аналог 1C?
Как убить процесс с определённого хоста не зная его ID
Игра с датамми
Аудит изменений таблицы
Книга по SQL 2000
Обновление recordset.
Очень странно
Отследить удаление (обновление) записи?:)
Не смешно: Как ужать БД ? (+++)

[В начало]

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

BDE и MS SQL
Импорт данных
Оптимизация баз Sql2k для работы с 1с
SP 3 для SQL 2000
Новая версия форума.
MetaDataServices->Export2XML
Уменьшить Transaction Log
где скачать "Exchenge Server 2000"
Книги
Rак выполнить batch или сделать SET SHOWPLAN
запрос на пропорциональное разделение деб. заложности по видам
Invalid buffer received from client..
РЕПЛИКАЦИЯ

[В начало]

ПОЛЕЗНОСТИ

Обработка баз данных на Visual Basic .NET (3-е издание)

Джеки Голдштейн, Джеффри П. Мак-Манус, Кевин T. Прайс

Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Авторы делятся своими секретами наиболее эффективного использования технологий на основе платформы .NET. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000. Затем рассматриваются способы использования основных объектов модели ADO.NET для доступа к данным в реляционных базах данных. Благодаря подробным примерам, читатели могут изучить способы использования основных свойств и методов, а также узнать о более сложных компонентах и технологиях. Многочисленные листинги с кодом на языке Visual Basic .NET иллюстрируют используемые концепции, а бизнес-ситуации показывают практическую область их применения. Заключительные главы посвящены описанию языка XML и вопросов интеграции модели ADO.NET с технологией ASP.NET в целях создания приложений для работы с базами данных разного типа. Третье издание книги Обработка баз данных на Visual Basic .NET позволяет разработчикам на языке Visual Basic получить новые знания и овладеть новыми навыками, которые пригодятся им для быстрого создания мощных приложений баз данных нового поколения на основе технологий платформы .NET.

Оглавление

Предисловие                                 12
ГЛАВА 1. Основы построения баз данных       19
ГЛАВА 2. Запросы и команды на языке SQL     65
ГЛАВА 3. Знакомство с SQL Server 2000       97
ГЛАВА 4. Модель ADO.NET: провайдеры данных  163
ГЛАВА 5. ADO.NET: объект DataSet            199
ГЛАВА 6. ADO.NET: объект DataAdapter        231
ГЛАВА 7. ADO.NET: дополнительные компоненты 261
ГЛАВА 8. Работа с проектом базы данных
в среде Visual Studio .NET                  287
ГЛАВА 9. XML и .NET                         307
ГЛАВА 10. ADO.NET и XML                     329
ГЛАВА 11. Web-формы: приложения на основе 
ASP.NET для работы с базами данных          367
ГЛАВА 12. Web-службы и технологии 
промежуточного уровня                       387

Материалы к книге: DBA_VBNET_code.zip 2982.2 КБайт

Подробнее о книге

Библиография

[В начало]


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

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

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




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

В избранное