SharePoint Server2007 Enterprise Edition and had 1 gigabyte (GB) of allocated RAM. Virtual
Server was running on a host machine with a 2 gigahertz (GHz) dual-core processor and 2 GB of
RAM.
Baseline tests were done first with a list containing 1,500 items. The list schema looked like this:
Title: Single line of text
Expense Category: Choice (Meals, Travel, Hotel, Supplies)
Amount: Currency
Deductible: Yes/No
Created By: Person or Group
Modified By: Person or Group
In the baseline tests, no columns were indexed; measurements were taken just to provide a
relative value that could be used after the number of items in the list exceeded recommended
boundaries. In the tests against a very large list, one set was done with no columns being
indexed and a second round was done after configuring the Expense Category column to be
indexed. The query that was executed in each one of the tests used a WHERE clause against the
Expense Category field looking for the first 100 items that contained “Supplies.”
To provide another point of comparison, the data being selected was based on ID value in the
tests against the very large list. The ID is a built-in numeric indexed field in all SharePoint lists
that is well suited to queries. The query in this case was constructed with a WHERE clause that
retrieved items where the ID ranged from 44,500 through 44,599.
Some tests were also run with the site under load. To create the load during the testing process,
a LoadTest was created in the Microsoft Visual Studio
®
.NET 2005 development system to stress
test the site. Instead of targeting a specific number of users in the test, it was configured as a
goal-based test, or a test in which a target value is defined for a particular measurement, and the
test determines the number of requests required to achieve the target. In this case, the goal that
was configured for the test was to achieve a consistent target CPU utilization on the Office
SharePoint Server2007 computer of from 60 through 80 percent.
Data access methods
Each test consisted of retrieving a subset of data from the list using one of a number of different
data access methods. This section shows the different methods that were tested.
Note: The code samples included in the following sections are intended to show the process
used to conduct tests. The code may not comply with coding best practices, and should not be
used in a production environment without careful review and testing.
Browser
The list was viewed using a browser and the predefined Office SharePoint Server2007 interface.
A special tool, which is described in the Test Harness section later in this white paper, was
developed to accurately capture how long it takes to view that information and browse through
pages of data.
SPList with For/Each
The Office SharePoint Server2007 object model (OM) was used to retrieve the list into an SPList
object. Each item in the list was then enumerated with a For/Each loop until items were found
that matched the search criteria.
The following sample code was used for this method.