SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |
   
#217<<  #218  >>#219

СОДЕРЖАНИЕ

1.СЕМИНАР
1.1.Репликация & Особенности разработки приложений
2.СОВЕТЫ
2.1.Операции с большими объемами данных в SQL Server. Часть 2 (окончание)
3.ССЫЛКИ НА СТАТЬИ
3.1.Статьи на русском языке
3.2.Англоязычные статьи
4.ФОРУМ SQL.RU
4.1.Самые популярные темы недели
4.2.Вопросы остались без ответа

СЕМИНАР

Репликация & Особенности разработки приложений

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

1. Создание глобализованного кода и SQL Server. Алексей Халяко

2. Обзор репликации SQL Server 2000. Александр Гладченко

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

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

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

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

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

[В начало]

СОВЕТЫ

Операции с большими объемами данных в SQL Server. Часть 2 (окончание)

По материалам статьи Joe Chang Large Data Operations in SQL Server
Перевод Виталия Степаненко

Операции поиска по индексу и сканирования таблицы являются аналогами предыдущих запросов Select и Update. Операции Top в каждой из двух команд Delete также идентичны операциям в соответствующих командах Update. В отличие от Update, команда Delete не имеет операции Compute Scalar. Однако поиск по индексу требует 0.250619 затрат, Top добавляет 0.010000, получая в сумме 0.260619, Table Delete добавляет 0.110068, однако общие затраты операции Table Delete получаются равными 0.380687, т.е. в них каким-то образом попали дополнительные 0.010000. Операция Table Delete имеет фиксированную величину затрат ввода-вывода в 0.010068, независимо от количества используемых страниц и строк.

Затраты на операции Table Spool объяснить сложнее. Операции в обоих запросах показывают затраты ввода-вывода в 0.931 и загрузку процессора в 0.0188, но Spool вверху показывает общие затраты в 0.768492, а Spool внизу показывает общие затраты в 1.149179. Обе операции Spool показывают полные затраты в 1.149179.

Верхний Spool для плана выполнения команды Delete с использованием поиска по индексу.

Нижний Spool для плана выполнения команды Delete с использованием поиска по индексу.

Затраты на Table Delete и верхний Table Spool действительно добавляются к полным затратам в 1.149179, но тогда нет никакого видимого объяснения, как затраты ввода-вывода и загрузка процессора для нижнего Table Spool приводят к тем же полным затратам.

Каждый Index Delete показывает затраты ввода-вывода в 0.0100125 и загрузку процессора в 0.100000, что несколько меньше, чем затраты ввода-вывода, и равно загрузке процессора для Table Delete. Обе операции Index Delete показывают полные затраты, равные 1.2591919.

Верхний Index Delete.

Нижний Index Delete.

Последняя операция SQL - это Sequence, которая показывает нулевые затраты ввода-вывода и загрузку процессора, равную 0.200000. Общие затраты равны 2.7183836, предыдущие операции внесли 2.5183836 из общих затрат, оставляя по 1.2591919 на каждый из Index Delete.

Это не очевидно, но вполне может быть, что затраты на операции, предшествующие операциям Table Spool, делятся поровну в общих затратах каждой операции Table Spool. Поэтому значения затрат добавляются не точно, а достаточно приблизительно.

Следующая таблица показывает измеренное время на выполнение команды Delete для обоих планов выполнения и обоих поисковых аргументов. План выполнения, использующий поиск по индексу, не учитывает затраты на получение строк и страниц данных, но измеренные затраты ясно показывают, что эти затраты входят в затраты реального плана выполнения. Неясно, почему сканирование таблицы, которое удаляет последовательные строки, требует большего времени, чем сканирование таблицы, удаляющее разнесенные строки. Когда все данные находятся в памяти, план выполнения с поиском по индексу оказывается немного быстрее сканирования таблицы. Операция Checkpoint выполняется очень быстро, если были изменены только несколько страниц данных, и выполняется медленнее, если все страницы были изменены, что ожидаемо.

Запрос Delete
100K строк

Последовательные
строки

Последовательные
строки

Разнесенные
строки

Разнесенные
строки

256M памяти

Index

Сканирование таблицы

Index

Сканирование таблицы

Время запроса (сек)

4.8 88.52 282 41

Время контрольной точки (сек)

8.4 4.52 8.4 14

Строк / сек

7,576 1,075 340 1,800

1154MB памяти

Index

Сканирование таблицы

Index

Сканирование таблицы

Время запроса (сек)

4.1 6.4 4.2 5.3

Время контрольной точки (сек)

3.7 3.9 28.6 28.6

Строк / сек

12,821 9,708 3,048 2,949

Ниже показан план выполнения команды Delete для этой же таблицы без индексов. Затраты на выполнение операций внутри команды такие же, как у таких же операций в рассмотренных выше планах выполнения.

Ниже показаны измеренные затраты времени на выполнение запроса и команды Checkpoint для удаления 100 000 строк из таблицы с 10M строк и 101 012 страниц.

Запрос Delete, без индекса
100K строк

Последовательные
строки

Разнесенные
строки

256M памяти

Сканирование таблицы

Сканирование таблицы

Время запроса (сек)

11.5 26

Время контрольной точки (сек)

0.1 4

Строк / сек

8,621 3,300

1154MB памяти

Сканирование таблицы

Сканирование таблицы

Время запроса (сек)

1.9 1.5

Время контрольной точки (сек)

0.2 22

Строк / сек

47,619 4,255

Как и ожидалось, операция Delete на таблице без индексов (которая должна использовать сканирование таблицы) работает быстрее, чем операция Delete, которая использует план выполнения со сканированием таблицы и должна также удалять данные из индексов.

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

Есть мнение, что намного быстрее обновлять или удалять большое количество строк, удаляя существующие индексы, обновляя или удаляя данные из таблицы без индексов, а затем пересоздавая индексы, чем обновлять или удалять данные из таблицы с индексами. Теперь видно, что причиной такого мнения является то, что план выполнения не учитывает затраты на получение страниц данных и использует план выполнения с поиском по индексу тогда, когда план выполнения со сканированием таблицы гораздо более эффективен. Время построения двух индексов, использованных в примерах, составляет в сумме около 90 секунд (30 секунд для SeqID и 60 секунд для DistID). Команды Update и Delete на таблице с индексами с использованием хинта сканирования таблицы в большинстве случаев работают быстрее, чем удаление индексов перед командами Update или Delete и последующее пересоздание этих индексов.

На сервере с 256 мегабайтами памяти время выполнения запроса Delete несколько больше, чем время выполнения запроса Select, для последовательных строк, и примерно в 2.5 раза больше для разнесенных строк. Время выполнения команды Checkpoint очень незначительно для последовательных строк, где задействовано небольшое количество страниц (1010 страниц данных и 185 страниц индексов) и более существенно, если требуется записать на диск большое количество страниц.

Заключение

Несколько важных заключений могут быть сделаны после рассмотрения планов выполнения SQL Server и действительных затрат на выполнение запросов для конфигурации с данными в памяти и конфигурации с интенсивным обменом с диском.

Есть хорошие основания полагать, что единицами измерения значений затрат плана выполнения SQL Server являются секунды, и что эти значения по крайней мере частично основаны на операциях с диском. Значения затрат были зафиксированы еще во время SQL Server 7.0 и с тех пор не обновлялись. Оптимизатор запросов SQL Server недооценивает скорость последовательной передачи данных современных дисков по сравнению с произвольным дисковым вводом-выводом. Когда данные находятся в памяти, затраты Bookmark Lookup на строку меньше, чем затраты сканирования таблицы на страницу. Время выполнения запроса будет сильно зависеть от того, находятся ли данные в памяти или необходимы дисковые операции. Для операций с интенсивной работой с диском также важна производительность диска при последовательных и произвольных операциях ввода-вывода. Современные технологии позволяют диску с частотой вращения 7200RPM иметь такую же производительность при последовательной передаче данных, как у диска с частотой вращения 15K, но однако вдвое меньшую производительность при произвольных операциях ввода-вывода.

В принципе, можно получить намного лучший план выполнения в определенных случаях, если можно определить, что данные уже находятся в памяти. Даже менее аккуратная оценка с использованием Buffer Cache Hit Ratio и оценка размера данных, относящаяся к Target Server Memory, должны давать лучший план выполнения, чем жестко фиксированные оценки, основанные только на системной памяти.

Наиболее важным заключением является то, что операции SQL Server Insert, Update и Delete могут неправильно рассчитывать полные затраты на операции ввода-вывода. Это может приводить к тому, что команды Update и Delete начинают использовать план выполнения с поиском по индексу в случаях, когда он гораздо менее эффективен, чем план выполнения со сканированием таблицы. Необязательно удалять индексы перед выполнением массивных удалений и затем пересоздавать их. Простое указание хинта сканирования таблицы является лучшим решением во многих случаях.

[В начало]

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

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

Компоненты для доступа к БД
Konstantin Zarovny
ADO: Данная страничка расказывает о компонентах erDataAccess написанных для Delphi с помощью которых можно осуществлять доступ к Базам данных. На данный момент работает только один драйвер, предназначеный для подключения к OLEDB провайдеру. И в отладке находится драйвер, который работает с Oracle непосредственно через OCI...

[В начало]

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

MDX in Analysis Services: Mastering Time: Moving Averages - Another Approach
William Pearson
In this article, we return to the subject of the previous article in the series, Mastering Time: Introduction to Moving Averages, and examine another approach for achieving "rolling average" aggregations. As we learned in our last article, "rolling," or "moving," averages, form a common business requirement, and involve a the aggregation of an average over a progressively moving window of time periods. While the functions that define the "window" involve the Time dimension in the vast majority of cases, we should be aware that we can apply these functions to members of other dimensional levels, as well
SQL Server 2000 Security - Part 12 - Auditing with Meta Data Services
Marcin Policht
In our previous two articles of this series, we discussed auditing and security related aspects of SQL Server 2000 Data Transformation Services. Now, we will combine these topics by presenting DTS Meta Data Services, which provides the ability to audit creation, execution, and modification of DTS packages as well as track associated data changes. In particular, you can track package version history or data lineage. This information is stored according to the rules of DTS Information Model, which can be accessed and manipulated by both SQL Server Enterprise Manager and programmatic methods (for review of SQL Server 2000 DTS, refer to its coverage on the DatabaseJournal Web site
Scalar Sub-Queries in SQL Server
Muthusamy Anantha Kumar
Scalar sub-queries return exactly one column value from one row. Scalar sub-queries can be used in CASE expressions, WHERE clauses, ORDER BY clauses and SELECT clauses. This article reviews a few examples of how to use scalar sub-queries in most situations
Script to Count Rows in SPs
Neil Mederich
This stored procedure for SQL Server 7.0 and 2000 will return the number of rows for stored procedures. Setting the parameter to a stored procedure name will return the count of rows for that procedure. Omitting the parameter or setting it to NULL will return all the stored procedures in the database and the row count for each
Exploring SQL Server 2000 Configuration Properties
Dale Elizabeth Corey
Did you ever wonder what the heck all those property settings meant in SQL Server 2000’s client tool, Enterprise Manager, and whether or not you really needed to tweak them? What are the key points? It never hurts to review
Keeping QA Up To Date - Part 2
Steve Jones
In the first article in this series I looked at the basic process for keeping your QA machine up to date. Here I'll delve further into the first step in this process, getting the latest backup from your production machine
Sort in .NET
Doug Thews
Learn how to implement and customize sorting for collections containing various data types. Sorting is one of the most commonly used algorithms in any application. Whether you're sorting data in arrays, data tables, or controls, sorting provides users with a logical view of information that's easy for them to digest
Bind Data to WinForms Controls
Brian Noyes
Display data programmatically with just a few lines of code, using the databinding features built into the .NET Framework's WinForms controls
Database Independent Development in C
Clay Dowling
The libdbi library provides a feature for C programmers that has long been missing. The interface is clean and the framework for adding new drivers is relatively straightforward
The Connection Object
Apress Publishing
ADO (ActivX Data Objects) gives us a way to manage data from all kinds of data stores, not just relational databases. This chapter looks at how to work with the Connection object and the methods, properties, collections and events that this object makes available to us. (From the book ADO Programmer's Reference by David Sussman, ISBN: 1590593421, Apress, 2004.)
SQL Server: Blocking Problems
Kevin Kline, Baya Pavliashvili
This article focuses on a common problem associated with conflicting locks: blocking. When blocking occurs, a single connection blocks all other connections from reading or modifying a particular piece of data. Learn here how to resolve these issues
Using AWE to increase performance
Baya Pavliashvili
Many DBA's are aware that Enterprise Edition of SQL Server 2000 can use more than 2 GB of memory. For most (albeit not all) systems, dedicating more memory to SQL Server translates into better performance; therefore, if the system's performance matters to you, taking advantage of additional memory is a good move. SQL Server can use up to 8 gigabytes of memory while running on Windows 2000 Advanced Server and up to 64 gigabytes with Windows 2000 Data Center Server
Microsoft Seeks to 'TAP' Elite Beta Tester Pool
Mary Jo Foley
Redmond quietly is implementing its new Technology Adoption Program across its product lines. On Thursday, Microsoft Corp. notified some of its SQL Server 2005 testers that they are eligible to join the next phase of the "Yukon" beta program. As noted in a beta tester e-mail note posted on the ieXbeta Web site, Microsoft is seeking customers to join its Technology Adoption Program (TAP) beta program for its next-generation database
Replication in SQL Server 2000 FAQ
ITtoolbox FAQ Team
Replication is a set of technologies that allows you to keep copies of the same data on multiple sites, sometimes covering hundreds of sites
Constructing a Data Warehouse
Tom Moulder
In today’s business world, data warehouses are increasingly being used to help companies make strategic business decisions. To understand how a warehouse can benefit you and what is required to manage a warehouse, you must first understand how a data warehouse is constructed and established. Some of the challenges associated with implementing a data warehouse are understood by answering these questions
Methods for Parsing XML files
Jon Winer
As we all know, in coding, there are many ways to get the same job done. In my experimentation with XML, I have run across many instances where this scenario is clearly true. Although some methods are grossly better than others, they all have a place in our programming repertoire depending on the circumstance. Take a look at some examples
Microsoft hypes BI, adds reporting tools for end users
Robert Westervelt
ORLANDO -- Microsoft unveiled plans Wednesday to integrate business intelligence reporting into the next version of SQL Server, placing new reporting tools in the hands of end users
DBAs Leery About Letting the Masses Build Reports
Lisa Vaas
ORLANDO, Fla.—Business intelligence a la Microsoft Corp.'s steady stream of freebie BI tools is a Jekyll and Hyde situation for IT managers: They want to empower users to concoct their own customized reports, but they're scared stiff of the explosion of data those same users will ignite when they get their hands on the easy-to-use reporting tools
Exchange from SQL Server
Steve Boriotti
Have you ever wanted to publish your organization’s SQL Server data in Exchange so that everyone with Outlook could access it? But perhaps you didn’t have the time or interest to learn how to use Microsoft messaging APIs. The following is an explanation of a suite of extended stored procedures you can use to create Outlook Contacts, Appointments, Tasks, and Journal Entries in Exchange Public Folders (or Outlook PSTs). These procedures can be added to the trigger of a SQL database table, thus easily liberating your enterprise’s SQL data to Outlook if your organization is using Exchange Server; updates made to a database table can be immediately displayed in an Exchange Public Folder. A free download is available for the extended stored procedures (enabled with basic functionality), along with sample scripts for implementing the table triggers and loading and unloading the extended stored procedures
Microsoft Reporting Services in Action: Extending Microsoft SQL Server 2000 Reporting Services with Custom Code
Teodor Lachev
This article presents an excerpt from the book, Microsoft Reporting Services in Action, by Teodor Lachev. Learn how to implement advanced report functionality using custom code. (28 printed pages)
Data Warehouse Performance Options
Dave Beulke
There are many options available to help you improve the performance of your data warehouse, and knowing all the different aspects of performance, issues, and considerations for building your data warehouse can be a tremendous task. DB2 offers many performance enhancements missing from other DBMSs that can make a huge difference. This article will highlight the performance advantages of DB2 and how to handle all the design issues, alternatives, and considerations experienced while building a large high-performance data warehouse
Implementing Real-Time Data Warehousing Using Oracle 10g
Mark Rittman
An interesting new aspect of Oracle’s recent data warehousing product announcements has been an emphasis on real-time, and near-real-time, data warehousing. So what is real-time and near-real-time data warehousing all about, why might your business users start asking for it, and how would you implement them using the Oracle 10g database and Oracle Warehouse Builder?
Graphs, Trees, and Hierarchies
Joe Celko
Le’s start with a little mathematical background. Graph theory is a branch of mathematics that deals with abstract structures, known as graphs. These are not the presentation charts that you get out of a spreadsheet package. From the new book, Trees and Hierarchies in SQL for Smarties (Morgan-Kaufmann), 2003
Implementing BizTalk Server 2004 — Developing and Implementing Orchestrations
Eric Charran
Microsoft recently released BizTalk Server 2004 as a product to facilitate the implementation of a Service Oriented Architecture (SOA) within an enterprise. The product is designed to encapsulate business processes formerly conducted by tightly-coupled, difficult to maintain applications which functioned as silos and replace them with a universal, transaction-based messaging system
Dynamic SQL Server Database Creation in .NET
Benoyraj B.
This article explains step by step dynamic creation of a SQL Server database, tables and stored procedure using Visual Studio codename Whidbey and VB.NET. Same procedure works for C# as well
Sorting a DropDownList by Value
Trent Miesner
The DropDownList control does not expose a sort method to sort items by either the value or the displayed text. Usually this is not a problem because the DropDownList will display the items in the order they were loaded into the control. Typically it's easy enough to ensure the data is loaded in the desired order by simply using an ORDER BY clause in the SQL SELECT statement or the stored procedure. Likewise, if you’re not pulling the values from the database, you simply use Items.Add in the desired order
The Danger of Hiring Stars
David Poole
In my father's day employment was simple. You joined as an firm after leaving school at the age of 14 and at the end of 50 years you got a gold watch and the brush off. The company accepted that it had certain responsibilities and you understood that they expected loyalty and hard graft
Microsoft Expands Business Intelligence Functionality For SQL Server 2000 and SQL Server 2005
Alex Payne
Customers Lower Cost and Increase Productivity With SQL Server Integration, Analysis And Reporting Tools; SQL Server Reporting Services Downloaded By Nearly 100,000 Users in Just Eight Months
Adding T-SQL functions to SQL Server system schema
Eli Leiba
Sometimes when dealing with many applications that need similar functionality, the best thing to do is to write functions directly to the system's schema. This enables all databases within the server to execute the function as though it was a regular expansion of the T-SQL language
MDX Essentials: Basic Set Functions: The EXTRACT() Function
William Pearson
In this lesson, we will introduce a function that operates upon a specified set, extracting the dimensions of that set as we dictate. As most references point out, by way of explanation, the EXTRACT() function works in a manner that is the opposite of the CROSSJOIN() function (for detailed information on the CROSSJOIN() function, see my Database Journal article MDX Essentials: Basic Set Functions: The CrossJoin() Function ). We will consider elementary uses of the EXTRACT() function in this article, and then explore more sophisticated uses in subsequent articles. As with other Basic Functions articles within this series, our objective is to build a foundation in the rudiments of the function, from which we can expand to more sophisticated exploitation in subsequent articles
Cursors with SQL 2000 Part 1
Don Schlichting
SQL languages are designed so groups of records, or sets, can be manipulated easily and quickly. The speed at which groups of data can be altered, updated and deleted, demonstrates why working with sets is the preferred method. A traditional programmatic database connection, using ADO or ODBC, to manipulate large groups of records one at a time, will be magnitudes slower than executing a single SQL statement that will alter all the records as one giant set. But what happens when data must be organized, or adjusted on a record-by-record basis? Sometimes multiple processing steps are required on each individual record before moving on to the next. In these cases, the result set cannot be created by traditional SQL set statements. Enter Cursors. Cursors are special programming constructs that allow data to be manipulated on a row-by-row basis, similar to other structured programming languages. They are declared like a variable, and then move one record at a time using a loop for control. This article will examine several aspects of Cursor creation, use, and behavior
Gathering Space Usage Statistics
Gregory A. Larsen
As a DBA, you will need to perform a number of different tasks to keep your databases and servers up and running. One of those DBA tasks you will need to perform is disk space capacity planning. You need to make sure there is enough disk space, so when one of your databases needs to grow it can find the disk space it needs. Depending on the growth patterns of your databases, you will more than likely need to purchase additional disk space periodically. One way to estimate your future disk space needs accurately, is to track the growth rate of your databases over time. This article will discuss how disk space usage information can be a valuable resource in helping with capacity planning
Scanning the network for SQL Server for a range of IP addresses
Muthusamy Anantha Kumar
In a large IT department, it can be difficult to locate where new SQL Server installations were made and how many of those SQL Servers were patched, etc. This article explains how to scan the entire network for a range of IP addresses to find which boxes have SQL Server instances installed. The OSQL utility with "-L" option will not always give the right number of servers on the network. In addition, it will not show the right listing if the SQL Server services were stopped
MSSQL Server 2000 Reporting Services: Master Chart Reports: Track Exchange Rates in a Line Chart
William Pearson
In our last article, Pie Charts in Reporting Services, we began the Master Chart Reports subset of our MSSQL Server 2000 Reporting Services series. This "mini-series" will demonstrate how to create chart reports of various types, and how to exploit the rich and flexible features contained in Reporting Services that enable us to make report data more meaningful, and easier to understand, from the perspective of our information consumer audiences
"Dog Fooding" Lessons: Microsoft Internal IT Group Deploys Beta 2 of Microsoft SQL Server 2005
Mike Hatch
Q&A: A senior internal technology architect shares insight Microsoft has gained from deploying and testing the latest beta release of Microsoft SQL Server 2005 as part of the company’s SAP R/3 enterprise resource planning system
Update/Delete from huge tables with intermediate commits
Susmit Sarkar
If Database is in Archive log mode then look for archive generation. rem Usage: UPDATE/DELETE in a loop and commit very n records
SP_WHO_3
Mike A. Barzilli
SP_WHO_3 is a very powerful utility for all DBAs. It displays processes connected to the system and what they are doing. It can find blocking processes, can return the Input Buffer for everything in the recordset returned, and provides immense filtering and sorting capabilities
DBAs make plans for unknown disasters
Robert Westervelt
Paul Timmerman, a SQL Server DBA who manages a data center at the Treasure Island Resort Casino in Red Wing, Minn., had an uneasy feeling after leaving a disaster recovery seminar last week
Working with Analysis Services Cubes in SQL Server
Baya Pavliashvili
Data warehousing is not for the faint of heart; it takes much diligence and dedication to learn the various tools of the trade. In this article, Baya Pavliashvili details some features available with Microsoft Analysis Services, whose Analysis Manager allows you to create and modify cubes to suit your end users' needs

[В начало]

ФОРУМ SQL.RU

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

Кто на чем пишет клиентов под SQL Server?
Новые упражнения на http://sql.ipps.ru
Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Новость No.2 - FTP SQL.RU
DATETIME, 24:00:00 и отображение в Enterprise Manager
Ошибка 0x80040E15 -2147217899
Clustered index & varchar(100+)
Запрос выполняется очень долго!!!
Как включить использование hyper-threading в MSSQL2000?
Оптимизация SELECT
Счетчик общий для нескольких таблиц
Выбрать по отсутствию
Parallelism - непонятно большое количество разпаралеленых потоков!?
Блок распределенной транзакции.
Ошибка Merge Agent: 18456 Login failed for user 'sa'
+
Связанные сервера->базы->таблицы...
Оптимизатор "теряет" фильтр
Error: 17883
тестовая задача при преме на работу

[В начало]

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

Вопрос про распределенные транзакции и TSQL
Удаленный отказ в обслуживании SQL Server 7.0
Ширина колонки в таблице MS SQL RS
Word и blob image
ошибка при установке MS SQL 2000 Developer Edition
Рекомендации по оформлению сообщений в форуме

[В начало]

#217<<  #218  >>#219
Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013