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

MS SQL Server

  Все выпуски  

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


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

#216<<  #217

СОДЕРЖАНИЕ

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

СОВЕТЫ

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

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

Запросы обновления

Те же самые четыре типа запросов были протестированы для команды Update. Первая пара запросов обновляет последовательный блок из 100 000 строк. Вторая пара запросов обновляет 100 000 строк, где каждая строка находится в отдельной 8-килобайтной странице. Команда Checkpoint выполняется сразу после команды Update. Сложение времени выполнения команд Update и Checkpoint определяет действительное время, необходимое для записи изменений на диск. Даже если сессия Query Analyzer может показывать, что команда выполнена, сложение времени выполнения двух команд является более точной оценкой реальных затрат.


-- Последовательные строки, поиск по индексу
UPDATE m SET randMoney = 1.0 FROM M3C_01 m WHERE SeqID = 91
GO
CHECKPOINT
GO

-- Последовательные строки, сканирование таблицы
UPDATE m SET randMoney = 1.0 FROM M3C_01 m WITH(INDEX(0)) WHERE SeqID = 91
GO
CHECKPOINT
GO

-- Разнесенные строки, поиск по индексу
UPDATE M3C_01 SET randMoney = 5000.0 WHERE DistID = 91
GO
CHECKPOINT
GO

-- Разнесенные строки, сканирование таблицы
UPDATE m SET randMoney = 1.0 FROM M3C_01 m WITH(INDEX(0)) WHERE DistID = 5
GO
CHECKPOINT
GO

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

Index Seek требует таких же затрат, как и в запросе Select. Операции Top и Compute Scalar добавляют к загрузке процессора 0.010000 каждая. Операция Table Update требует 0.010068 затрат ввода-вывода и 0.100000 загрузки процессора, а также 0.0000001 затрат на строку. Как обсуждалось ранее, план выполнения показывает те же затраты ввода-вывода, несмотря на количество вовлеченных строк или страниц. Index Seek не может гарантировать, что строки обновляются по порядку.


Ниже показаны окна детализации команды Update, использующей хинт для сканирования таблицы. Данные детализации затрат на сканирование таблицы такие же, что и у команды Select. Здесь операция Top добавляет 4.809997 затрат, хотя даже затраты ввода-вывода и загрузка процессора - такие же, что и у предыдущей операции Update. Оператор Table Update имеет такую же структуру затрат в обоих случаях.


Конечный результат формул затрат плана выполнения состоит в том, что план по умолчанию, использующий поиск по индексу, менее затратен, чем план со сканированием таблицы в 238 раз. Такой результат получается полностью из-за разницы в затратах между поиском 100 000 строк по индексу высокой плотности и табличным сканированием 101 012 страниц и 10М строк. Следующая таблица показывает действительное время выполнения команды Update и следующей за ней Checkpoint для конфигураций памяти 256M и 1154M.

Запрос UPDATE
100K строк
Последовательные
строки
Последовательные
строки
Разнесенные
строки
Разнесенные
строки
256M памяти Поиск по индексу Сканирование таблицы Поиск по индексу Сканирование таблицы
Время запроса (сек) 1.3 12.6 476.6 10.5
Время контрольной точки (сек) 0.4 0.6 14.5 8
Строк / сек 57,471 7,576 203 2,778
1154MB памяти
Время запроса (сек) 0.8 1.3 0.9 1.5
Время контрольной точки (сек) 0.2 0.1 23 23
Строк / сек 100,000 71,429 4,184 4,082

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

Простое изменение условия SET в запросе UPDATE на randMoney = randMoney + 1.0 даст в результате план, показанный ниже. Теперь план выполнения по умолчанию использует сканирование таблицы, а план выполнения с индексом на поисковом аргументе использует операцию bookmark lookup.

Запросы удаления

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


-- Последовательные строки, поиск по индексу
DELETE M3C_01 WHERE SeqID = 91
GO
CHECKPOINT
GO

-- Последовательные строки, сканирование таблицы
DELETE m FROM M3C_01 m WITH(INDEX(0)) WHERE SeqID = 71
GO
CHECKPOINT
GO

-- Разнесенные строки, поиск по индексу
DELETE M3C_01 WHERE DistID = 91
GO
CHECKPOINT
GO

-- Разнесенные строки, сканирование таблицы
DELETE m FROM M3C_01 m WITH(INDEX(0)) WHERE DistID = 27
GO
CHECKPOINT
GO

Без хинтов план выполнения использует поиск по индексу. Затраты ввода-вывода на чтение страницы данных и строки не учитываются планом выполнения, таким же, как план выполнения команды Update. Использование запросом сканирования таблицы порождает гораздо более затратный план. После операции Table Delete производится операция Spool, после которой производятся операции Index Delete для двух индексов этой таблицы.

(Окончание следует)

[В начало]

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

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

XP SP2 и SQL Server
Брайан Моран
MSSQLServer: Мне уже приходилось писать о влиянии пакета Windows XP Service Pack 2 (SP2) на SQL Server. Теперь, когда пользователи получают XP SP2 через службу Windows Update и из других источников, пришла пора вернуться к этой теме. В XP SP2 появились превосходные новые функции, например удобный в применении и активизируемый по умолчанию брандмауэр Windows Firewall...
Назначение разработчикам SA-полномочий
Брайан Моран
MSSQLServer: Ранее я рекомендовал интегрировать SQL Server Profiler в процесс модульного тестирования. Обычно специалисты по ИТ считают Profiler инструментом администрирования баз данных (DBA), но в моей статье отмечалась масса преимуществ, которые приносит разработчикам использование Profiler. Я получил много одобрительных отзывов, но среди сообщений были, например, и такие: "Мне понравилась ваша статья о предоставлении разработчикам права запускать Profiler в процессе проектирования, но я - администратор БД, и одновременно занимаюсь разработкой и контролем качества. Я понимаю, что для запуска Profiler необходимы полномочия sa, но это требование исключает Profiler из процесса разработки. Как вы думаете, могут ли и будут ли разработчики SQL Server в Microsoft делать что-то с полномо...
Сможет ли Stinger затмить Yukon?
Брайан Моран
MSSQLServer: Цель Microsoft - сделать SQL Server 2005, на сегодня известную как Yukon, основной средой для разработчиков. Множество новшеств, таких как новый интерфейс, похожий на Visual Studio, и интеграция с Microsoft .NET, должны облегчить задачу программистов, использующих инструментарий проектирования на платформе Microsoft. Однако другие компании из тройки крупнейших поставщиков баз данных могут опередить Microsoft и первыми предложить платформу с встроенной поддержкой .NET...
Коротко о службе Service Broker
Эрик Браун
MSSQLServer: Современным системам электронной коммерции необходимы масштабируемые приложения на основе баз данных, отвечающие требованиям сложных задач автоматизации бизнес-процессов. Для многих организаций, скажем, труднее принять заказ, чем получить деньги покупателя и доставить товар. Кроме того, программно-аппаратные системы, выполняющие эти действия, не всегда масштабируемы и не всегда работают синхронно. SQL Server Service Broker - новая технология в SQL Server Yukon - предоставит внутренним и внешним процессам возможность отправлять и получать асинхронные сообщения через расширения T-SQL Data Manipulation Language (DML), удовлетворяя тем самым потребности масштабируемых бизнес-приложений. При помощи Service Broker системы смогут соблюдать очередность сообщений в одной базе да...
Технология кластеров Windows. Архитектура службы кластеров
Microsoft
Служба кластеров - одна из двух технологий кластеров Microsofta Windowsa, существующая в семействе серверных продуктов Microsofta Windowsa 2000 и Microsoft Windows NTa. Серверы на базе Windows 2000 и Windows NT, работающие со службой кластеров, обеспечивают поддержку восстановления после сбоев для серверных приложений и служб, требующих высокой доступности и целостности данных. Среди этих серверных приложений есть приложения масштаба предприятия, такие, как базы данных, файловые серверы, приложения ERP (Enterprise Resource Planning - планирование ресурсов предприятия) и почтовые системы. В данном информационном документе рассматривается архитектура и возможности службы кластеров и описывается ее терминология, понятия, проектные цели, ключевые компоненты и планируемые на...
Обеспечение безопасности репликации SQL Server 2000
Marcin Policht
MSSQLServer: Безопасность репликации - очень важная задача, которую нужно очень тщательно планировать. Давайте начнём с замечания о том, что процедуры создания/администрирование издателей, дистрибуторов и подписчиков (включая публикацию базы данных для репликации) доступны только для серверной роли sysadmin. После определения участников репликации, только члены роли sysadmin и члены роли db_owner публикуемой базы данных могут создавать и настраивать публикации. Мониторинг репликации доступен для членов серверной роли sysadmin и роли replmonitor базы данных distributor, которая создаётся автоматически, вместе с дистрибутором...

[В начало]

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

Build a Delimited List And Query Syscomments, Tricks of the Trade
Andy Warren
Sometimes knowing a trick or two can make your life easier. It would sure be nice if all the tricks were cataloged somewhere, or even made unnecessary somehow - but that might be another article!
Introduction to MSSQL Server 2000 Analysis Services: Basic Storage Design
William Pearson
Optimization of MSAS requires an in-depth knowledge of many factors, including the manner in which MSAS executes queries within the client/server architecture that embodies it. From the perspective of the cubes that MSAS produces, our primary concerns, from a performance standpoint, lie within two main groups: cube processing performance (how fast the cube builds / updates from the source data) and cube query performance (the response time with which consumers' needs are met with information contained in the cube)
How to Execute SQL Stored Procedures from Microsoft Access
Danny Lesandrini
The simplicity and popularity of SQL Server means that more and more developers who build applications with Microsoft Access will want to learn how to take advantage of server side processing using SQL Server Stored Procedures. The following article will demonstrate a simple method for executing procs from Access.
Automating "Save DTS package"
Muthusamy Anantha Kumar
MAK examines how to save all of the DTS packages from SQL Server to a structured storage file automatically by taking advantage of Microsoft's stored procedure, "DTSRUN.exe." As you know, DTS can have many versions. This procedure will dump every version of the same DTS package as different file
SQL Server 2000 Security - Part 11 - DTS Security
Marcin Policht
In this article of our series presenting SQL Server 2000 Security, we are turning our attention towards Data Transformation Services. If you are not familiar with this topic, it might be helpful to first review its coverage on the DatabaseJournal Web site. The referenced information gives a fairly comprehensive discussion of its principles and the majority of its features - we will focus here strictly on the security related aspects of this technology
Transaction Processing in ADO.NET 2.0
William Ryan
It seems like just yesterday that Microsoft introduced a brand new data access technology that brought a ton of power as well as a decent sized learning curve. When ADO 2.xxx turned into ADO.NET, things changed dramatically. It took some getting used to to feel comfortable using the whole 'disconnected' model, but the "cool" factor made it all worth while. When .NET Framework 1.1 came out, very little changed in regard to what you needed to learn or what you could do with it. Well, we're turning another corner and right off in the distance is ADO.NET 2.0. The differences between ADO.NET 2.0 and < ADO.NET 2.0 are pretty profound, and you'll definitely have to spend some time learning new features if you want to take advantage of its power. I think you'll find that it's well worth the effort
Optimizing Microsoft SQL Server Analysis Services: MDX Optimization Techniques: Optimizing NON EMPTY
William E. Pearson, III
In this article, we will explore the use of a calculated member property to optimize query performance. Almost anyone who has worked with MSAS for any length of time has become aware of the NON EMPTY keyword in MDX. Empty cells are the reason that most of us are thankful for the NON EMPTY option. Empty cells are a direct result of no data existing at the intersection of two or more dimension, and our MDX statements display them alongside the populated cells in the datasets rendered
Generic Data Comparison
Leo Peysakhovich
One of the problems frequently faced by the DBAs or database developers is data comparison. Specifically, data residing in separate databases. The company I am working for has 2 types of databases: Access and SQL Server. Very often I need to compare data in different tables in different databases residing on different servers. After some extensive research on the WEB I have found a great article by Jonathan Gennick on http://www.oreillynet.com/pub/a/network/2002/04/08/compsets.html)
The SQL of OLAP
Michael Gonzales
Don't overlook the underpinning - and core strength - of your OLAP technology solution. When considering online analytic processing (OLAP), architects often focus on issues such as which dimensions to include, what facts are relevant, how often to refresh the data contents, and so on. Among these issues, the OLAP language is often overlooked. And of all the OLAP-centric languages, the most often ignored is SQL itself. To overlook the language of your OLAP technology solution is to ignore its real strength, or weakness, because this language dictates your applications' flexibility and complexity
Change How You Access Data
Peter DeBetta
ADO.NET 2.0 lets you do data paging, make asynchronous database calls, leverage Multiple Active Result Sets, and more. This article is excerpted from Chapter 6, "Client-Side ADO.NET," of Peter DeBetta's upcoming book, Introducing Microsoft SQL Server 2005 for Developers [Microsoft Press, ISBN: 073561962X]. It has been edited for length and format to fit the magazine. You can read a PDF of the full chapter here
Get Ready for SQL Server 2005
Roger Jennings
Belated Beta 2 shows what's in store for data architects, project managers, and DBAs. SQL Server 2005—the database formerly known as Yukon—is in the throes of what promises to be a five-year-plus gestation. Projected beta release dates have come and gone since its first demonstration in 2001, and some features have been cut. Microsoft released Beta 2 this July for download by MSDN Enterprise, Universal, and Professional subscribers (see Additional Resources). Microsoft's Tom Rizzo, director of SQL Server product management, says Beta 2 is "close to feature-complete," with later betas to deliver enhancements to SQL Server Reporting Services and the management tools. The actual product is due to ship in 2005, as its new name promises, with the additional promise that it will be fast, bulletproof, and secure
XML Data-Binding Powers Up in ASP.NET 2.0
Thiru Thangarathinam
ASP.NET 2.0, the new XmlDataSource control greatly simplifies binding XML sources to controls, letting you display hierarchical XML data easily. It even leverages XSLT, XPath, and caching, eliminating much manual coding. XML data is generally used to represent semi-structured or hierarchal data. Using XML documents as your data source allows you to receive XML documents from other sources and format the XML data to be compatible with your application. ASP.NET 1.0 let you use XML data sources, but much of that work required manual coding to get the data into a format suitable for display. In contrast, ASP.NET 2.0 provides a new XmlDataSource control that simplifies binding XML data to controls such as the TreeView and GridView—and it works with both hierarchical and tabular data
Windows Security
O'Reilly
This chapter shows you some ways to keep your Windows system up-to-date and secure. Although many may scoff at the mention of Windows and security in the same sentence, you actually can make a Windows system fairly secure without too much effort. (Network Security Hacks by Andrew Lockhart, O'Reilly Media, ISBN: 0596006438, 2004.)
Dimensional Databases: Building A Data Warehouse
Baya Pavliashvili
Building a data warehouse involves several complicated steps and can take time if the population routines aren't designed carefully. But the effort is worth it. Baya Pavliashvili addresses some of the challenges involved in building and maintaining dimensional databases that serve as the foundation of a data warehouse
A Survey of Microsoft SQL Server 2000 XML Features
Andrew Conrad
Greetings from Redmond! I hope that you're enjoying your summer. I've been quite busy with a jam-packed conference schedule. If you were fortunate enough to attend Tech Ed this year, I'm sure you had an exciting time. I know I did. Living by the adage that all good things take time, I'm posting an article written by an associate of mine who had a bit more time this past month to craft an extreme article. Keeping in good form, Andy tried to beat my previous article in the length category. This is a great article for anyone that hasn't taken a close look at the XML features in SQL Server 2000. This article is intended to provide you with a roadmap of SQL Server XML features, focusing heavily on recently released features shipped through our Web release program. I would like to thank Andy for his time and energy on this article
SQL Server: Why cluster?
There are two types of clustering in SQL Server: load balancing and failover. This short article from InformIT's SQL Server Reference Guide examines the reasons for clustering and some of the system requirements
Sorting output with CASE expressions for custom sort orders
Serdar Yegulalp
Sometimes, a recordset will need to be returned with a non-standard sort order -- something which isn't possible with conventional sort or collation mechanisms. One example would be to have a zero in a numeric column placed at the bottom of the sort order, but to have everything else sorted normally (i.e., top-to-bottom, or bottom-to-top, if desired)
How to use a URL to pass parameter information with an SQL query for a data source by using FrontPage 2003 and Windows SharePoint Services
Microsoft Corporation
This article describes how to use a URL to pass parameter information with a Microsoft SQL query for a data source by using Microsoft Office FrontPage 2003 and Microaoft Windows SharePoint Services
Fighting OS-Level Fragmentation
Brian Moran
Q. I've read about how fragmentation at the SQL Server level can hurt my queries' performance. I understand how to look for fragmentation within my SQL Server tables by using the DBCC SHOWCONTIG command. However, should I also worry about fragmentation at the OS level?
Data Warehouse Tuning: What’s Different About Data Warehouses
Dennis Shasha and Philippe Bonnet
In this chapter, we discuss the use and tuning of a wide variety of indexing techniques (e.g., bitmaps and star schemas), table caching techniques (e.g., tables and matrices that store aggregate data), sampling (e.g., extrapolate from portions of tables), and query processing methods (e.g., optimized foreign key joins)
Common QA for deploying SQL Server in a SAN Environment
Microsoft / Siebel
Detailed question/answer paper on deploying SQL Server in a Storage Area Network (SAN) Environment
Using a Script to Kill Processes in SQL
Bruce Szabo
Backing up and restoring databases is part of every administrator's job. While performing backups, a number of methods can be used to save time. If a database needs to be moved from one server to another, a backup on one server and a restore on another server is a great method. Some projects require a production database to be moved from one server to a another server under a different name. In each of these processes, a restore cannot be completed unless all the users are out of the target database
Introduction to DTS in SQL Server 2005
Vinod Kumar
One of the key features introduced in SQL Server 2005 is the new DTS platform. With the new release of SQL Server Beta 2, you must be eager to get your hands dirty on this new amazing platform. This product does bring in a new perspective and new thinking the way we used to work with DTS. Most of the DTS architecture has undergone dramatic changes. In this article I will walk through an step-by-step easy uploading of a given datafile into SQL Server. This new version of DTS does go beyond the ETL (Extract, Transform, Load) tools definition. You can orchestrate your code and create an workflow with the same. DTS in Yukon is more manageable, usable and more mature from its previous version
Know Your System: Top Five SQL Server Questions
Buck Woody
Here's a handy reference guide to the most popular SQL Server issues. Have you ever had someone who treats all technology as equally mysterious ask you to take over a SQL server? He or she assumed you could handle it—after all, you know all about that "computer stuff," right?

[В начало]

ФОРУМ SQL.RU

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

Кто на чем пишет клиентов под SQL Server?
Новые упражнения на http://sql.ipps.ru
Tool Вы знаете что твориться на ваших 10-30+ серверах ?
Не могу сообразить как сделать такой сложный запрос, на мой взгляд очень сложно
DATETIME, 24:00:00 и отображение в Enterprise Manager
SQL Server Health and History Tool (SQLH2) Reports
Clustered index & varchar(100+)
И снова Триггеры - нужна помощь
Вопрос по триггерам "instead of update"
Производительность SQL сервера
Помогите разобраться!!!!!
SOS! Как запустить отладчик SQL кода?
Как включить использование hyper-threading в MSSQL2000?
Прикрепленный топик
Connection Broken при использовании AWE.
Вопрос по DMO
Серьезный вопрос и чуть-чуть наглости
Как выбрать из записи только первое слово?
Чем лучше пользоваться чтобы поднять скорость INSERT/UPDATE ?
курсор на хранимую процедуру

[В начало]

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

Расширение базы и группы файлов
ОФФ? А у кого есть фикс с билдом выше 929? Оч нада.
Расщепление кластерного индекса
cab файл при репликации
Как создать триггeр в Exchange 2000 кладущий письма в SQL 2000?

[В начало]

ПОЛЕЗНОСТИ

Теория и практика построения баз данных 9-е изд.

Автор: Крёнке Д.

Издание: 9-е, 2004 год. ISBN: 5-94723-583-8. Формат: 17x24 см. Объем: 864 стр. Переплет: твердая обложка. Срок выхода: в продаже. Цена: 570 руб.

В книге Д. Крёнке, выдержавшей уже 9 переизданий, вы найдете традиционно подробный, методически выверенный теоретический и практический материал, посвященный вопросам разработки и использования баз данных. В новом издании более глубоко обсуждаются моделирование данных и проектирование баз данных; расширены разделы, по SQL и XML; добавлен раздел, знакомящий с ADO.NET. Книгу отличает большое количество примеров, моделирующих типичные ситуации из практики делового мира.

[В начало]

Практикум по технологиям баз данных. Учебное пособие

Пунчик З.В., Оскерко В.С.

ISBN: 985-484-072-7. БГЭУ: Минск. 2004. 60х90/16. 170 страниц

В пособии рассматриваются технологии работы с локальной базой данных с использованием визуальных средств конструирования СУБД Access и языка баз данных SQL. Излагаются основы работы с базой данных в многопользовательской среде в архитектуре клиент/сервер. Приводятся краткие теоретические сведения, необходимые для освоения рассматриваемых технологий, и комплекс заданий с четкими алгоритмами их выполнения. Алгоритмы апробированы на лабораторных занятиях. Даются задания для самостоятельной работы по темам. Для студентов высших учебных заведений, колледжей и техникумов.

[В начало]

#216<<  #217

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Виталию Степаненко на адрес: stvitaly@sql.ru

sql.ru Описание рассылки u="u209.55.spylog.com";d=document;nv=navigator;na=nv.appName;t="";p=0; sz=" width=88 height=31 "; hl=history.length;d.cookie="b=b";c=0; bv=Math.round(parseFloat(nv.appVersion)*100); if (d.cookie) c=1;n=(na.substring(0,2)=="Mi")?0:1; if((n==0)||(bv >= 300)){rn=Math.random();t=(new Date()).getTimezoneOffset();} else {rn=0;} z="p="+p+"&rn="+rn+"&t="+t+"&c="+c+"&hl="+hl; if (self != top) { fr=1;} else { fr=0;} r=escape(d.referrer);r1=""; sl="1.0";h=0; pl="";sl="1.1"; if((n==1) && (bv >= 300)) { for(var i = 0; i < nv.plugins.length; i++) pl += nv.plugins[i].name+":"; } j = (navigator.javaEnabled() ? "Y" : "N"); sl="1.2";s=screen;wh=s.width+'x'+s.height; px=(n==0)?screen.colorDepth:screen.pixelDepth;z+="&wh="+wh+"&px="+px; sl="1.3" y=""; y+=""; y+="SpyLOG"; y+=""; d.write(y);

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

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



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


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

В избранное