22 February 2011

Max Worker Threads Configuration

In 2005 the default value for this setting has changed from 255 (SQL2k) to 0 (dynamic in SQL2k5). According to various sources, the following table shows the automatically configured number of Max Worker Threads for SQL Servers (2005) with different numbers of CPUs when the SQL Server database engine is left to dynamically set this value:

CPUs

Auto Configured Max Worker Threads (32 bit Server)

Auto Configured Max Worker Threads (64 bit Server)

<= 4 CPUs

256

512

8 CPUs

288

576

16 CPUs

352

704

32 CPUs

480

960

The formula to determine the max worker processes is as follows:

For x86 systems where total number of logical processors <=4

# max worker threads = 256

Otherwise:

# max worker threads = 256 + ((# Procs – 4) * 8)

For x64 systems where total number of logical processors <= 4

# max worker threads = 512

Otherwise

# max worker threads = 512 + ((# Procs – 4) * 16)

On an 8 processor x86 machine (could be 4-proc HT or 4-proc dual core machine, therefore shows 8 logical procs), max worker threads will be configured to 288 (256 + (4 * 8))

You can find out how many threads have been configured by looking at the max_workers_count column in the sys.dm_os_sys_info DMV.

Note:

SQL and indeed Windows has NO method of identifying the difference between physical and logical processors – i.e. multi-core and hyper-threaded processors appear to windows (and therefore) SQL as processors. As such 4 x Dual core would appear as 8 logical processors – and max worker threads would be sized on this basis regardless of whether these are 8 x physical, 4 x dual core or 4 x HT.



21 February 2011

Script for REBUILD/REORG

USE [msdb]
GO
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Rebuild 30% Fragmented Indexes',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'ADITIDT634\Pradyothana', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Rebuild Index] Script Date: 04/29/2010 18:41:42 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Rebuild Index',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'DECLARE DBCURSOR CURSOR FOR SELECT NAME FROM SYS.DATABASES where database_id not in (1,2,3,4,5,6,7,8,10)
OPEN DBCURSOR;
DECLARE @dbnames varchar(100),
@sql nvarchar(4000);
FETCH NEXT FROM DBCURSOR into @dbnames
WHILE (@@FETCH_STATUS<>-1)
BEGIN
set @sql=''USE ''+@dbnames+'';
PRINT ''''REBULDING INDEXES ON DATABASE ''''+DB_NAME(DB_ID());
SET NOCOUNT ON;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @partitioncount bigint;
DECLARE @schemaname sysname;
DECLARE @objectname sysname;
DECLARE @indexname sysname;
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @frag float;
DECLARE @command varchar(8000);
-- ensure the temporary table does not exist
IF EXISTS (SELECT name FROM sys.objects WHERE name = ''''work_to_do'''')
DROP TABLE work_to_do;
-- conditionally select from the function, converting object and index IDs to names.
SELECT
object_id AS objectid,
index_id AS indexid,
partition_number AS partitionnum,
avg_fragmentation_in_percent AS frag
INTO work_to_do
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, ''''LIMITED'''')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
-- Declare the cursor for the list of partitions to be processed.
DECLARE partitions CURSOR FOR SELECT * FROM work_to_do;
-- Open the cursor.
OPEN partitions;
-- Loop through the partitions.
FETCH NEXT
FROM partitions
INTO @objectid, @indexid, @partitionnum, @frag;

WHILE @@FETCH_STATUS = 0
BEGIN;
SELECT @objectname = o.name, @schemaname = s.name
FROM sys.objects AS o
JOIN sys.schemas as s ON s.schema_id = o.schema_id
WHERE o.object_id = @objectid;

SELECT @indexname = name
FROM sys.indexes
WHERE object_id = @objectid AND index_id = @indexid;

SELECT @partitioncount = count (*)
FROM sys.partitions
WHERE object_id = @objectid AND index_id = @indexid;

-- 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding
IF @frag < 30.0
BEGIN;
SELECT @command = ''''ALTER INDEX '''' + @indexname + '''' ON '''' + @schemaname + ''''.'''' + @objectname + '''' REORGANIZE'''';
IF @partitioncount > 1
SELECT @command = @command + '''' PARTITION='''' + CONVERT (CHAR, @partitionnum);
EXEC (@command);
END;

IF @frag >= 30.0
BEGIN;
SELECT @command = ''''ALTER INDEX '''' + @indexname +'''' ON '''' + @schemaname + ''''.'''' + @objectname + '''' REBUILD'''';
IF @partitioncount > 1
SELECT @command = @command + '''' PARTITION='''' + CONVERT (CHAR, @partitionnum);
EXEC (@command);
END;
PRINT ''''Executed '''' + @command;

FETCH NEXT FROM partitions INTO @objectid, @indexid, @partitionnum, @frag;
END;
-- Close and deallocate the cursor.
CLOSE partitions;
DEALLOCATE partitions;''
--print @sql;
exec (@sql);
FETCH NEXT FROM DBCURSOR INTO @dbnames;
end;
CLOSE DBCURSOR;
DEALLOCATE DBCURSOR;
-- drop the temporary table
--IF EXISTS (SELECT name FROM sys.objects WHERE name = ''work_to_do'')
-- DROP TABLE work_to_do;
--GO',
@database_name=N'master',
@output_file_name=N'C:\Program Files\Microsoft SQL Server\Index_Rebuild_30_Log.log',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1,@new_name='JOB FOR REBUILD OR REORG INDEXES'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

Script for REBUILD/REORG

USE [msdb]
GO
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Rebuild 30% Fragmented Indexes',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'ADITIDT634\Pradyothana', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Rebuild Index] Script Date: 04/29/2010 18:41:42 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Rebuild Index',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'DECLARE DBCURSOR CURSOR FOR SELECT NAME FROM SYS.DATABASES where database_id not in (1,2,3,4,5,6,7,8,10)
OPEN DBCURSOR;
DECLARE @dbnames varchar(100),
@sql nvarchar(4000);
FETCH NEXT FROM DBCURSOR into @dbnames
WHILE (@@FETCH_STATUS<>-1)
BEGIN
set @sql=''USE ''+@dbnames+'';
PRINT ''''REBULDING INDEXES ON DATABASE ''''+DB_NAME(DB_ID());
SET NOCOUNT ON;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @partitioncount bigint;
DECLARE @schemaname sysname;
DECLARE @objectname sysname;
DECLARE @indexname sysname;
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @frag float;
DECLARE @command varchar(8000);
-- ensure the temporary table does not exist
IF EXISTS (SELECT name FROM sys.objects WHERE name = ''''work_to_do'''')
DROP TABLE work_to_do;
-- conditionally select from the function, converting object and index IDs to names.
SELECT
object_id AS objectid,
index_id AS indexid,
partition_number AS partitionnum,
avg_fragmentation_in_percent AS frag
INTO work_to_do
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, ''''LIMITED'''')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
-- Declare the cursor for the list of partitions to be processed.
DECLARE partitions CURSOR FOR SELECT * FROM work_to_do;
-- Open the cursor.
OPEN partitions;
-- Loop through the partitions.
FETCH NEXT
FROM partitions
INTO @objectid, @indexid, @partitionnum, @frag;

WHILE @@FETCH_STATUS = 0
BEGIN;
SELECT @objectname = o.name, @schemaname = s.name
FROM sys.objects AS o
JOIN sys.schemas as s ON s.schema_id = o.schema_id
WHERE o.object_id = @objectid;

SELECT @indexname = name
FROM sys.indexes
WHERE object_id = @objectid AND index_id = @indexid;

SELECT @partitioncount = count (*)
FROM sys.partitions
WHERE object_id = @objectid AND index_id = @indexid;

-- 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding
IF @frag < 30.0
BEGIN;
SELECT @command = ''''ALTER INDEX '''' + @indexname + '''' ON '''' + @schemaname + ''''.'''' + @objectname + '''' REORGANIZE'''';
IF @partitioncount > 1
SELECT @command = @command + '''' PARTITION='''' + CONVERT (CHAR, @partitionnum);
EXEC (@command);
END;

IF @frag >= 30.0
BEGIN;
SELECT @command = ''''ALTER INDEX '''' + @indexname +'''' ON '''' + @schemaname + ''''.'''' + @objectname + '''' REBUILD'''';
IF @partitioncount > 1
SELECT @command = @command + '''' PARTITION='''' + CONVERT (CHAR, @partitionnum);
EXEC (@command);
END;
PRINT ''''Executed '''' + @command;

FETCH NEXT FROM partitions INTO @objectid, @indexid, @partitionnum, @frag;
END;
-- Close and deallocate the cursor.
CLOSE partitions;
DEALLOCATE partitions;''
--print @sql;
exec (@sql);
FETCH NEXT FROM DBCURSOR INTO @dbnames;
end;
CLOSE DBCURSOR;
DEALLOCATE DBCURSOR;
-- drop the temporary table
--IF EXISTS (SELECT name FROM sys.objects WHERE name = ''work_to_do'')
-- DROP TABLE work_to_do;
--GO',
@database_name=N'master',
@output_file_name=N'C:\Program Files\Microsoft SQL Server\Index_Rebuild_30_Log.log',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1,@new_name='JOB FOR REBUILD OR REORG INDEXES'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

max worker threads Option

max worker threads Option

Use the max worker threads option to configure the number of worker threads available to Microsoft SQL Server processes. SQL Server uses the native thread services of the Microsoft Windows 2000 and Windows Server 2003 operating systems so that one or more threads support each network that SQL Server supports simultaneously, another thread handles database checkpoints, and a pool of threads handles all users.

Thread pooling helps optimize performance when large numbers of clients are connected to the server. Usually, a separate operating system thread is created for each query request. However, with hundreds of connections to the server, using one thread per query request can consume large amounts of system resources. The max worker threads option enables SQL Server to create a pool of worker threads to service a larger number of query request, which improves performance.

The default value for max worker threads, 0, allows SQL Server to automatically configure the number of worker threads at startup. This setting is best for most systems; however, depending on your system configuration, setting max worker threads to a specific value sometimes improves performance.

The following table shows the automatically configured number of max worker threads for various combinations of CPUs and versions of SQL Server.

Number of CPUs

32-bit computer

64-bit computer

<= 4 processors

256

512

8 processors

288

576

16 processors

352

704

32 processors

480

960

Caution note Caution

We recommend 1024 as the maximum for 32 bit SQL Server.

When the actual number of query request is less than the amount set in max worker threads, one thread handles each query request. However, if the actual number of query request exceeds the amount set in max worker threads, SQL Server pools the worker threads so that the next available worker thread can handle the request.

SQL Server Build List - SQL 2000

Patch Level PSS Only Link BuildSorted By Build In Descending Order Version

2000 + Q971524

2,283 8.00.2283

2000 SP4+Q959678

2,279 8.00.2279

2000 (QFE) SP4+Q941203 / 948111

2,273 8.00.2273

2000 SP4+Q946584

2,271 8.00.2271

2000 SP4+Q944985

2,265 8.00.2265

2000 SP4+Q939317
2,253 8.00.2253

2000 SP4+Q936232

2,249 8.00.2249

2000 SP4+Q935950

2,248 8.00.2248

2000 SP4+Q935465

2,246 8.00.2246

2000 SP4+Q933573

2,245 8.00.2245

2000 SP4+Q934203

2,244 8.00.2244

2000 SP4+Q929131/932686/932674

2,242 8.00.2242

2000 SP4+Q931932

2,238 8.00.2238

2000 SP4+Q929440 / 929131

2,234 8.00.2234

2000 SP4+Q928568

2,232 8.00.2232

2000 SP4+Q928079

2,231 8.00.2231

2000 SP4+Q927186

2,229 8.00.2229

2000 SP4+Q925684/925732

2,226 8.00.2226

2000 SP4+Q925678 / 925419

2,223 8.00.2223

2000 SP4+Q925297

2,218 8.00.2218

2000 SP4+Q924664

2,217 8.00.2217

2000 SP4+Q924662/923563/923327 / 923796

2,215 8.00.2215

2000 SP4+Q923797

2,209 8.00.2209

2000 SP4+Q923344

2,207 8.00.2207

2000 SP4+Q920930

2,201 8.00.2201

2000 SP4+Q919221

2,199 8.00.2199

2000 SP4+Q919133/919068/919399

2,197 8.00.2197

2000 SP4+Q919165

2,196 8.00.2196

2000 SP4+Q917972 / 917565

2,194 8.00.2194

2000 SP4+Q917606

2,192 8.00.2192

2000 SP4+Q916698/916950

2,191 8.00.2191

2000 SP4+Q916652/913438

2,189 8.00.2189

2000 SP4+916287/914384/898709/915065/915340

2,187 8.00.2187

2000 SP4+Q913684 (64bit)

2,180 8.00.2180

2000 SP4+Q911678 / 922579

2,175 8.00.2175

2000 SP4+Q910707

2,172 8.00.2172

2000 SP4+Q909369

2,171 8.00.2171

2000 SP4+Q907813 GO 2,168 8.00.2168

2000 SP4+Q921293 GO 2,167 8.00.2167

2000 SP4+Q909734 GO 2,166 8.00.2166

2000 SP4+Q904660 GO 2,162 8.00.2162

2000 (64b) SP4+Q907250 GO 2,159 8.00.2159

2000 SP4+Q906790 GO 2,156 8.00.2156

2000 SP4+Q903742 / 904244 GO 2,151 8.00.2151

2000 SP4+Q899430/31/900390/404
/901212/902150/955
GO 2,148 8.00.2148

2000 SP4+Q899410 GO 2,147 8.00.2147

2000 SP4+Q826906/836651 GO 2,145 8.00.2145

2000 SP4+Q959420 GO 2,055 8.00.2055

2000 (GDR) SP4+Q941203 / 948110 GO 2,050 8.00.2050

2000 SP4+Q899761 GO 2,040 8.00.2040

2000 SP4 GO 2,039 8.00.2039

2000 SP4 Beta 2,026 8.00.2026

2000 SP3+Q899410 GO 1,547 8.00.1547

2000 SP3+Q930484 GO 1,037 8.00.1037

2000 SP3+Q929410 GO 1,036 8.00.1036

2000 SP3+Q917593 GO 1,035 8.00.1035

2000 SP3+Q915328 GO 1,034 8.00.1034

2000 SP3+Q902852 GO 1,029 8.00.1029

2000 SP3+Q900416 GO 1,027 8.00.1027

2000 SP3+Q899428/899430 GO 1,025 8.00.1025

2000 SP3+Q898709 GO 1,024 8.00.1024

2000 SP3+Q887700 GO 1,021 8.00.1021

2000 SP3+Q896985 GO 1,020 8.00.1020

2000 SP3+Q897572 GO 1,019 8.00.1019

2000 SP3+Q896425 GO 1,017 8.00.1017

2000 SP3+Q895123/187 GO 1,014 8.00.1014

2000 SP3+Q891866 GO 1,013 8.00.1013

2000 SP3+Q894257 GO 1,009 8.00.1009

2000 SP3+Q893312 GO 1,007 8.00.1007

2000 SP3+Q892923 GO 1,003 8.00.1003

2000 SP3+Q892205 GO 1,001 8.00.1001

2000 SP3+Q891585 GO 1,000 8.00.1000

2000 SP3+Q891311 GO 997 8.00.997

2000 SP3+Q891017/891268 GO 996 8.00.996

2000 SP3+Q890942/768/767 GO 994 8.00.994

2000 SP3+Q890925/888444/890742 GO 993 8.00.993

2000 SP3+Q889314 GO 991 8.00.991

2000 SP3+Q890200 GO 990 8.00.990

2000 SP3+Q889166 GO 988 8.00.988

2000 SP3+Q889239 GO 985 8.00.985

2000 SP3+Q887974 GO 980 8.00.980

2000 SP3+Q888007 GO 977 8.00.977

2000 SP3+Q884554 GO 973 8.00.973

2000 SP3+Q885290 GO 972 8.00.972

2000 SP3+Q872842 GO 970 8.00.970

2000 SP3+Q878501 GO 967 8.00.967

2000 SP3+Q883415 GO 962 8.00.962

2000 SP3+Q873446 GO 961 8.00.961

2000 SP3+Q878500 GO 959 8.00.959

2000 SP3+Q870994 GO 957 8.00.957

2000 SP3+Q867798 GO 955 8.00.955

2000 SP3+Q843282 GO 954 8.00.954

2000 SP3+Q867878/867879/867880 GO 952 8.00.952

2000 SP3+Q843266 GO 949 8.00.949

2000 SP3+Q843263 GO 948 8.00.948

2000 SP3+Q839280 GO 944 8.00.944

2000 SP3+Q841776 GO 937 8.00.937

2000 SP3+Q841627 GO 936 8.00.936

2000 SP3+Q841401 GO 935 8.00.935

2000 SP3+Q841404 GO 934 8.00.934

2000 SP3+Q840856 GO 933 8.00.933

2000 SP3+Q839529 GO 929 8.00.929

2000 SP3+Q839589 GO 928 8.00.928

2000 SP3+Q839688 GO 927 8.00.927

2000 SP3+Q839523 GO 926 8.00.926

2000 SP3+Q838460 GO 923 8.00.923

2000 SP3+Q837970 GO 922 8.00.922

2000 SP3+Q837957 GO 919 8.00.919

2000 SP3+Q317989 GO 916 8.00.916

2000 SP3+Q837401 GO 915 8.00.915

2000 SP3+Q836651 GO 913 8.00.913

2000 SP3+Q837957 GO 911 8.00.911

2000 SP3+Q834798 GO 910 8.00.910

2000 SP3+Q834290 GO 908 8.00.908

2000 SP3+Q834453 GO 904 8.00.904

2000 SP3+Q833710 GO 892 8.00.892

2000 SP3+Q836141 GO 891 8.00.891

2000 SP3+Q832977 GO 879 8.00.879

2000 SP3+Q831950 GO 878 8.00.878

2000 SP3+Q830912/831997/831999 GO 876 8.00.876

2000 SP3+Q830887 GO 873 8.00.873

2000 SP3+Q830767/830860 GO 871 8.00.871

2000 SP3+Q830262 GO 870 8.00.870

2000 SP3+Q830588 GO 869 8.00.869

2000 SP3+Q830366 GO 867 8.00.867

2000 SP3+Q830366 GO 866 8.00.866

2000 SP3+Q830395/828945 GO 865 8.00.865

2000 SP3+Q829205/829444 GO 863 8.00.863

2000 SP3+Q821334 *May contain errors* GO 859 8.00.859

2000 SP3+Q828637 GO 858 8.00.858

2000 SP3+Q828017/827714/828308 GO 857 8.00.857

2000 SP3+Q828096 GO 856 8.00.856

2000 SP3+Q828699 GO 854 8.00.854

2000 SP3+Q830466/827954 GO 852 8.00.852

2000 SP3+Q826754 GO 851 8.00.851

2000 SP3+Q826860/826815/826906 GO 850 8.00.850

2000 SP3+Q826822 GO 848 8.00.848

2000 SP3+Q826433 GO 847 8.00.847

2000 SP3+Q826364/825854 GO 845 8.00.845

2000 SP3+Q826080 GO 844 8.00.844

2000 SP3+Q825043 GO 842 8.00.842

2000 SP3+Q825225 GO 841 8.00.841

2000 SP3+Q319477/319477 GO 840 8.00.840

2000 SP3+Q823877/824027/820788 GO 839 8.00.839

2000 SP3+Q821741/548/740/823514 GO 837 8.00.837

2000 SP3+Q826161 GO 819 8.00.819

2000 SP3+Q821277/337/818388
/826161/821280
GO 818 8.00.818

2000 SP3+Q818766 GO 816 8.00.816

2000 SP3+Q819662 GO 814 8.00.814

2000 SP3+Q819248/819662/818897 GO 811 8.00.811

2000 SP3+Q818899 GO 807 8.00.807

2000 SP3+Q818729 GO 804 8.00.804

2000 SP3+Q818540 GO 801 8.00.801

2000 SP3+Q818414/097/188 GO 800 8.00.800

2000 SP3+Q817464 GO 798 8.00.798

2000 SP3+Q817464/813524/816440/817709 GO 794 8.00.794

2000 SP3+Q815249 GO 791 8.00.791

2000 SP3+Q817081 GO 790 8.00.790

2000 SP3+Q816840 GO 789 8.00.789

2000 SP3+Q816985 GO 788 8.00.788

2000 SP3+Q815057 GO 781 8.00.781

2000 SP3+Q816084/810185 GO 780 8.00.780

2000 SP3+Q814035 GO 779 8.00.779

2000 SP3+Unidentified 776 8.00.776

2000 SP3+Q815115 GO 775 8.00.775

2000 SP3+Q814889/93 GO 769 8.00.769

2000 SP3+Q810163/688/811611/813769
/813759/812995/814665/460/813494
GO 765 8.00.765

2000 SP3+Q814113 GO 763 8.00.763

2000 SP3+Q814032 GO 762 8.00.762

2000 SP3/SP3a GO 760 8.00.760

2000 SP2+Q818406/763 GO 743 8.00.743

2000 SP2+Q818096 GO 741 8.00.741

2000 SP2+Q816937 GO 736 8.00.736

2000 SP2+Q814889 GO 735 8.00.735

2000 SP2+Q813759 GO 733 8.00.733

2000 SP2+Q813769 GO 730 8.00.730

2000 SP2+Q814460 GO 728 8.00.728

2000 SP2+Q812995/813494 GO 725 8.00.725

2000 SP2+Q812798 GO 723 8.00.723

2000 SP2+Q812250/812393 GO 721 8.00.721

2000 SP2+Q811703 GO 718 8.00.718

2000 SP2+Q810688/811611 GO 715 8.00.715

2000 SP2+Q811478 GO 714 8.00.714

2000 SP2/3+Q811205 GO 713 8.00.713

2000 SP2/3+Q811052 GO 710 8.00.710

2000 SP2+Q810920 GO 705 8.00.705

2000 SP2+Q810526 GO 703 8.00.703

2000 SP2+Q328551 GO 702 8.00.702

2000 SP2+Q810026/810163 GO 701 8.00.701

2000 SP2+Q810072 GO 700 8.00.700

2000 SP2+Q810052/10 GO 696 8.00.696

2000 SP2+Q331885/965/968 GO 695 8.00.695

2000 SP2+Q330212 GO 693 8.00.693

2000 SP2+Q311104 GO 690 8.00.690

2000 SP2+Q329499 GO 689 8.00.689

2000 SP2+Q329487 GO 688 8.00.688

2000 SP2+Q316333 GO 686 8.00.686

2000 SP3+Q319851 GO 682 8.00.682

2000 SP2+Q316333 GO 679 8.00.679

2000 SP2+Q328354 GO 678 8.00.678

2000 SP2+8/14 fix 667 8.00.667

2000 SP2+8/8 fix 665 8.00.665

2000 SP2+Q326999 GO 661 8.00.661

2000 SP2+7/24 fix 655 8.00.655

2000 SP2+Q810010? GO 652 8.00.652

2000 SP2+Q322853 GO 650 8.00.650

2000 SP2+Q324186 GO 644 8.00.644

2000 SP2+Q319507 GO 608 8.00.608

2000 SP2+3/29 fix 604 8.00.604

2000 SP2+Q319869 GO 599 8.00.599

2000 SP2+Q319477/319477 GO 594 8.00.594

2000 SP2+Q317979/318045 GO 578 8.00.578

2000 SP2+1/29 fix 561 8.00.561

2000 SP2+Q314003/315395 GO 558 8.00.558

2000 SP2+Q313002/5 GO 552 8.00.552

2000 SP2.01 534 8.00.534

2000 SP2 GO 532 8.00.532

2000 SP1+1/29 fix 475 8.00.475

2000 SP1+Q315395 GO 474 8.00.474

2000 SP1+Q314003 GO 473 8.00.473

2000 SP1+Q313302 GO 471 8.00.471

2000 SP1+Q313005 GO 469 8.00.469

2000 SP1+Q308547 GO 452 8.00.452

2000 SP1+Q307540/307655 GO 444 8.00.444

2000 SP1+Q307538 GO 443 8.00.443

2000 SP1+Q304850 GO 428 8.00.428

2000 SP1 GO 384 8.00.384

2000 No SP+Q299717 GO 296 8.00.296

2000 No SP+Q297209 GO 287 8.00.287

2000 No SP+Q300194
GO 251 8.00.251

2000 No SP+Q291683 GO 250 8.00.250

2000 No SP+Q288122 GO 249 8.00.249

2000 No SP+Q285290 GO 239 8.00.239

2000 No SP+Q282416 GO 233 8.00.233

2000 No SP+Q282279 GO 231 8.00.231

2000 No SP+Q278239 GO 226 8.00.226

2000 No SP+Q281663 GO 225 8.00.225

2000 No SP+Q280380 GO 223 8.00.223

2000 No SP+Q281769 GO 222 8.00.222

2000 No SP+Q279183 GO 218 8.00.218

2000 No SP+Q279293/279296 GO 217 8.00.217

2000 No SP+Q276329 GO 211 8.00.211

2000 No SP+Q275900 GO 210 8.00.210

2000 No SP+Q274330 GO 205 8.00.205

2000 No SP+Q274329 GO 204 8.00.204

2000 RTM/No SP 194 8.00.194

2000 Gold, no SP 190 8.00.190

2000 Beta 2 100 8.00.100

2000 EAP5 78 8.00.078

2000 EAP4 47 8.00.047