FIX: Inserting lots of text, ntext, or image data over multiple concurrent connections takes a long time in SQL Server 2000

Article translations Article translations
Article ID: 886708 - View products that this article applies to.
Bug #: 472729 (SQL Server 8.0)
Expand all | Collapse all

On This Page

Article contents

SUMMARY

This article describes the following about this hotfix release:
  • The issues that are fixed by this hotfix package
  • The prerequisites for installing the hotfix package
  • Whether you must restart your computer after you install the hotfix package
  • Whether the hotfix package is replaced by any other hotfix package
  • Whether you must make any registry changes
  • The files that are contained in the hotfix package

SYMPTOMS

In Microsoft SQL Server 2000, when you insert lots of text, ntext, or image data over multiple concurrent connections, the data may take longer to insert than in scenarios where the data is inserted serially.

When the concurrent inserts occur, the sysprocesses virtual table may display one of the following values in the waittype column for the connections that perform the inserts:
  • 0x0413 (PAGELATCH_UP)
  • 0x0414 (PAGELATCH_EX)
The value of the waitresource column for the PAGELATCH_UP waittype is a page number that is always an even multiple of 8088.

For a list of all publicly released SQL Server 2000 Post-Service Pack 3a hotfixes, see the following article in the Microsoft Knowledge Base:
810185 SQL Server 2000 hotfix update for SQL Server 2000 Service Pack 3 and 3a

CAUSE

This problem occurs when the binary large object (BLOB) data is inserted over concurrent connections.

Text, ntext, and image data is stored in chunks. These chunks are linked and form the sequence of the binary data for a specific row in SQL Server 2000. These chunks of data can be one of the following:
  • Full pages, where all the data on the page is associated with a single row.
  • A mixed page that stores fragments from multiple rows.
When full pages are allocated, delay may occur between allocating the page and marking the page as full. This delay may cause other concurrent insertions to examine the page to see if there is available space for that insert.

When you insert the data over a concurrent connection, the sysprocesses virtual table may indicate that the connection that is trying the insert has a waittype of either of the following values for the PAGELATCH_UP and PAGELATCH_EX waittypes.
  • 0x0413 (PAGELATCH_UP)
  • 0x0414 (PAGELATCH_EX)
With a concurrent connection, an incoming thread for an insert tries to latch the page PAGELATCH_EX. However, the thread is blocked. Then, the insert waits for the thread that is currently inserting onto the page. Only when the first insert is complete can the second insert find that the page is full and does not have space that is available for the second insert. When this scenario occurs, the second insert is returned to the allocation code to look for another page to insert on. These additional trips to the allocation code cause the delay in inserting data to SQL Server 2000 over concurrent connections.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack

Hotfix information

Prerequisites

This hotfix requires SQL Server 2000 Service Pack 3 (SP3). For more information about how to obtain SQL Server 2000 Service Pack 3, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack
Additionally, this hotfix requires that you also have SQL Server 2000 hotfix build 2000.80.977 installed. For more information about SQL Server 2000 Post SP3a hotfix build 2000.80.977, click the following article number to view the article in the Microsoft Knowledge Base:
888007 You receive a "The product does not have a prerequisite update installed" error message when you try to install a SQL Server 2000 post-Service Pack 3 hotfix

Restart information

You do not have to restart your computer after you apply this hotfix.

Hotfix file information

This hotfix contains only those files that are required to correct the issues that this article lists. This hotfix may not contain all the files that you must have to fully update a product to the latest build.

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.

SQL Server 2000, 32-bit versions

   Date         Time   Version        Size       File name
   ------------------------------------------------------------------
   08-Oct-2004  01:13  2000.80.980.0    664,128  Autoplt.dll      
   08-Oct-2004  01:13  2000.80.980.0     78,400  Console.exe      
   08-Oct-2004  01:13  2000.80.980.0    332,352  Ctasksui.dll     
   08-Oct-2004  01:13  2000.80.980.0    315,968  Custtask.dll     
   08-Oct-2004  01:13  2000.80.980.0     33,340  Dbmslpcn.dll     
   08-Apr-2004  21:42                   786,432  Distmdl.ldf
   08-Apr-2004  21:42                 2,359,296  Distmdl.mdf
   30-Sep-2003  22:55                       180  Drop_repl_hotfix.sql
   08-Oct-2004  01:13  2000.80.980.0  1,905,216  Dtspkg.dll       
   08-Oct-2004  01:13  2000.80.980.0    528,960  Dtspump.dll      
   08-Oct-2004  01:13  2000.80.980.0  1,557,052  Dtsui.dll        
   08-Oct-2004  01:13  2000.80.980.0    639,552  Dtswiz.dll       
   30-Sep-2003  22:55                   747,927  Instdist.sql
   30-Sep-2003  22:55                     1,581  Inst_repl_hotfix.sql
   08-Oct-2004  01:13  2000.80.980.0    352,828  Isqlw.exe        
   08-Oct-2004  01:13  2000.80.980.0     82,492  Itwiz.exe        
   08-Oct-2004  01:13  2000.80.980.0     90,692  Msgprox.dll      
   19-May-2004  23:43  8.11.40209.0     209,408  Mssdi98.dll      
   08-Oct-2004  01:13  2000.80.980.0     62,024  Odsole70.dll     
   08-Oct-2004  01:14  2000.80.980.0     25,144  Opends60.dll     
   08-Oct-2004  01:13  2000.80.980.0     57,904  Osql.exe         
   08-Oct-2004  01:13  2000.80.980.0    279,104  Pfutil80.dll     
   30-Sep-2003  22:48                   550,780  Procsyst.sql
   08-Apr-2004  21:42                    12,305  Qfe469315.sql
   08-Apr-2004  21:42                    19,195  Qfe469571.sql
   27-Aug-2004  00:13                     5,157  Qfe472197.sql
   08-Oct-2004  01:13  2000.80.980.0    143,940  Qrdrsvc.exe      
   30-Sep-2004  16:25                 1,105,167  Replmerg.sql
   08-Oct-2004  01:13  2000.80.980.0    221,768  Replprov.dll     
   08-Oct-2004  01:13  2000.80.980.0    307,784  Replrec.dll      
   30-Sep-2004  01:51  2000.80.980.0    159,813  Replres.rll
   27-Aug-2004  00:13                 1,086,925  Replsys.sql
   30-Sep-2003  22:55                   986,603  Repltran.sql
   08-Oct-2004  01:13  2000.80.980.0    287,304  Rinitcom.dll     
   08-Oct-2004  01:13  2000.80.980.0     78,416  Sdiclnt.dll      
   08-Oct-2004  01:13  2000.80.980.0     66,112  Semmap.dll       
   08-Oct-2004  01:13  2000.80.980.0     57,916  Semnt.dll        
   08-Oct-2004  01:13  2000.80.980.0    492,096  Semobj.dll       
   30-Sep-2004  02:20  2000.80.980.0    172,032  Semobj.rll
   08-Oct-2004  01:13  2000.80.980.0     53,832  Snapshot.exe     
   30-Sep-2003  22:48                   117,834  Sp3_serv_uni.sql
   08-Oct-2004  01:12  2000.80.980.0     28,672  Sqlagent.dll     
   08-Oct-2004  01:13  2000.80.980.0    311,872  Sqlagent.exe     
   08-Oct-2004  01:12  2000.80.980.0    168,001  Sqlakw32.dll     
   08-Oct-2004  01:13  2000.80.980.0     33,344  Sqlctr80.dll     
   08-Oct-2004  01:13  2000.80.980.0  4,215,360  Sqldmo.dll       
   08-Oct-2004  01:13                    25,172  Sqldumper.exe    
   30-Sep-2004  01:34  2000.80.980.0     28,672  Sqlevn70.rll
   08-Oct-2004  01:13  2000.80.980.0    156,224  Sqlmaint.exe     
   08-Oct-2004  01:13  2000.80.980.0    180,792  Sqlmap70.dll     
   08-Oct-2004  01:13  2000.80.980.0    188,992  Sqlmmc.dll       
   30-Sep-2004  02:34  2000.80.980.0    479,232  Sqlmmc.rll
   08-Oct-2004  01:13  2000.80.980.0    401,984  Sqlqry.dll       
   08-Oct-2004  01:13  2000.80.980.0     57,920  Sqlrepss.dll     
   08-Oct-2004  01:13  2000.80.980.0  7,712,849  Sqlservr.exe     
   08-Oct-2004  01:13  2000.80.980.0    590,396  Sqlsort.dll      
   08-Oct-2004  01:13  2000.80.980.0     45,644  Sqlvdi.dll       
   08-Oct-2004  01:13  2000.80.980.0    106,588  Sqsrvres.dll     
   08-Oct-2004  01:13  2000.80.980.0     33,340  Ssmsgnet.dll     
   08-Oct-2004  01:13  2000.80.980.0     33,340  Ssmslpcn.dll     
   08-Oct-2004  01:13  2000.80.980.0     33,340  Ssmsqlgc.dll     
   08-Oct-2004  01:13  2000.80.980.0     82,492  Ssnetlib.dll     
   08-Oct-2004  01:13  2000.80.980.0     25,148  Ssnmpn70.dll     
   08-Oct-2004  01:13  2000.80.980.0    123,456  Stardds.dll      
   08-Oct-2004  01:13  2000.80.980.0    158,240  Svrnetcn.dll     
   08-Oct-2004  01:13  2000.80.980.0     76,416  Svrnetcn.exe     
   08-Oct-2004  01:13  2000.80.980.0     49,228  Ums.dll          
   08-Oct-2004  01:13  2000.80.980.0     74,304  Xplog70.dll      
   08-Oct-2004  01:13  2000.80.980.0     98,872  Xpweb70.dll      

SQL Server 2000, 64-bit version

   Date         Time   Version        Size        File name             Platform
   -----------------------------------------------------------------------------
   01-Oct-2004  02:28  2000.80.980.0      56,832  Dbmslpcn.dll          IA-64
   08-Apr-2004  21:42                    786,432  Distmdl.ldf
   08-Apr-2004  21:42                  2,359,296  Distmdl.mdf
   30-Sep-2003  22:55                        180  Drop_repl_hotfix.sql
   30-Sep-2003  22:55                    747,927  Instdist.sql
   30-Sep-2003  22:55                      1,581  Inst_repl_hotfix.sql
   01-Oct-2004  02:28  2000.80.980.0     185,856  Msgprox.dll           IA-64
   19-May-2004  23:43  8.11.40517.0      722,944  Mssdi98.dll           IA-64
   01-Oct-2004  02:28  2000.80.980.0     151,040  Odsole70.dll          IA-64
   01-Oct-2004  02:29  2000.80.980.0      27,136  Opends60.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     148,992  Osql.exe              IA-64
   30-Sep-2003  22:48                    550,780  Procsyst.sql
   08-Apr-2004  21:42                     12,305  Qfe469315.sql
   08-Apr-2004  21:42                     19,195  Qfe469571.sql
   27-Aug-2004  00:13                      5,157  Qfe472197.sql
   01-Oct-2004  02:28  2000.80.980.0     353,280  Qrdrsvc.exe           IA-64
   30-Sep-2004  16:25                  1,105,167  Replmerg.sql
   01-Oct-2004  02:28  2000.80.980.0     534,528  Replprov.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     769,024  Replrec.dll           IA-64
   30-Sep-2004  16:26  2000.80.980.0     146,432  Replres.rll
   27-Aug-2004  00:13                  1,086,925  Replsys.sql
   30-Sep-2003  22:55                    986,603  Repltran.sql
   01-Oct-2004  02:28  2000.80.980.0     650,240  Rinitcom.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     160,768  Semmap.dll            IA-64
   01-Oct-2004  02:28  2000.80.980.0     132,608  Semnt.dll             IA-64
   01-Oct-2004  02:28  2000.80.980.0      88,576  Snapshot.exe          IA-64
   30-Sep-2003  22:48                    117,834  Sp3_serv_uni.sql
   01-Oct-2004  02:27  2000.80.980.0      10,240  Sqlagent.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0   1,055,232  Sqlagent.exe          IA-64
   01-Oct-2004  02:28  2000.80.980.0      90,112  Sqlboot.dll           IA-64
   01-Oct-2004  02:28  2000.80.980.0      32,256  Sqlctr80.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0  13,845,504  Sqldmo.dll            IA-64
   01-Oct-2004  02:28                     39,936  Sqldumper.exe         IA-64
   30-Sep-2004  16:15  2000.80.980.0      19,968  Sqlevn70.rll
   01-Oct-2004  02:28  2000.80.980.0     493,568  Sqlmaint.exe          IA-64
   01-Oct-2004  02:28  2000.80.980.0      23,040  Sqlmap70.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     152,064  Sqlrepss.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0  25,205,760  Sqlservr.exe          IA-64
   01-Oct-2004  02:28  2000.80.980.0     616,960  Sqlsort.dll           IA-64
   01-Oct-2004  02:28  2000.80.980.0     120,320  Sqlvdi.dll            IA-64
   01-Oct-2004  02:28  2000.80.980.0     227,328  Sqsrvres.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0      53,760  Ssmslpcn.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0      59,904  Ssmsqlgc.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     255,488  Ssnetlib.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0      20,992  Ssnmpn70.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     430,080  Svrnetcn.dll          IA-64
   01-Oct-2004  02:28  2000.80.980.0     185,856  Svrnetcn.exe          IA-64
   01-Oct-2004  02:28  2000.80.980.0     183,296  Xplog70.dll           IA-64
   01-Oct-2004  02:28  2000.80.980.0     187,392  Xpweb70.dll           IA-64
Note Because of file dependencies, the most recent hotfix that contains these files may also contain additional files.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.

MORE INFORMATION

For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:
822499 New naming schema for Microsoft SQL Server software update packages
For more information about the terminology that Microsoft uses when it corrects software after it is released, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates

Properties

Article ID: 886708 - Last Review: November 2, 2007 - Revision: 2.4
APPLIES TO
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000, Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Keywords: 
kbsqlserv2000presp4fix kbfix kbbug kbhotfixserver kbqfe KB886708

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com