Quantcast
Channel: SharePoint 2010 - Development and Programming forum
Viewing all articles
Browse latest Browse all 11508

Poor Large List View Column Filter Performance

$
0
0

I have a list with 16,000 items which does not exceed the manually increased List View Threshold of 20,000. The view I am looking at has a page size of 30 items and shows 20 columns. 8 of these columns are indexed. I am attempting to filter on any of the 20 columns at this is the result:

Scenario 1:

  1. Filter drop down clicked on "Title" column which has approximately 16,000 unique values. This column is not indexed.
  2. "Loading..." is shown indicating that filter choices are being loaded.
  3. Two minutes and 55 seconds later, "Show Filter Choices" appears and is clicked.
  4. One minute and 50 seconds later, an unexpected error occurs.

From the ULS logs I am able to ascertain that a timeout occurred and the thread was aborted. Thread abort stack:

System.Threading.ThreadAbortException: Thread was being aborted.

at SNIReadSync(SNI_Conn* , SNI_Packet** , Int32 )

at SNINativeMethodWrapper.SNIReadSync(SafeHandle pConn, IntPtr& packet, Int32 timeout)

at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)

at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()

at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()

at System.Data.SqlClient.TdsParserStateObject.ReadByteArray(Byte[] buff, Int32 offset, Int32 len)

at System.Data.SqlClient.TdsParserStateObject.ReadString(Int32 length)

at System.Data.SqlClient.TdsParser.ReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)

at System.Data.SqlClient.TdsParser.ReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)

at System.Data.SqlClient.SqlDataReader.ReadColumnData()

at System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout)

at System.Data.SqlClient.SqlDataReader.GetSqlString(Int32 i)

at System.Data.SqlClient.SqlDataReader.GetChars(Int32 i, Int64 dataIndex, Char[] buffer, Int32 bufferIndex, Int32 length)

at Microsoft.SharePoint.SPSqlClient.setMappedOleDBTypes(Object[]& row, UInt16[] columnTypes, SqlDataReader reader)

at Microsoft.SharePoint.SPSqlClient.ExecuteQueryInternal(Boolean retryfordeadlock)

at Microsoft.SharePoint.SPSqlClient.ExecuteQuery(Boolean retryfordeadlock)


Scenario 2:

  1. Filter drop down clicked on "Category" column which has 8 unique values. This column is indexed.
  2. "Loading..." is shown indicating that filter choices are being loaded.
  3. Two minutes and 40 seconds later, 8 filter choices are shown.
  4. A filter is clicked and successfully applied in 5 seconds.

These performance problems make the system unusable. Our application has extensive custom development, but not in this particular feature. What is causing the poor performance? What could I use to locate the bottleneck?


Viewing all articles
Browse latest Browse all 11508

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>