Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Topic Tags: no tags for this item
MrNiap
#1 Posted : Friday, February 03, 2012 9:29:58 AM(UTC)


Rank: Seeker

Joined: 5/3/2010(UTC)
Posts: 14

We are experiencing timeouts a bit too often. The timeouts seem to occur in the GetSueetieUserList() method which is run as soon as the system requests an avatar.

Is there anything we can do here?


[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5064474
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) +555
System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) +390
System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket() +35
System.Data.SqlClient.TdsParserStateObject.ReadBuffer() +30
System.Data.SqlClient.TdsParserStateObject.ReadByte() +69
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +102
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
System.Data.SqlClient.SqlDataReader.get_MetaData() +86
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +311
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +987
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) +70
Sueetie.Core.DbSueetieDataProvider.GetSueetieUserList(SueetieUserType sueetieUserType) in C:\SVN\Projects\Hästliv\Kod\source\Sueetie.Core\Providers\DbSueetieDataProvider.cs:402
Sueetie.Core.SueetieUsers.GetSueetieUserList(SueetieUserType sueetieUserType, Boolean useCachedUserList) in C:\SVN\Projects\Hästliv\Kod\source\Sueetie.Core\SueetieUsers.cs:133
Sueetie.Core.SueetieUsers.GetSueetieUserList(SueetieUserType sueetieUserType) in C:\SVN\Projects\Hästliv\Kod\source\Sueetie.Core\SueetieUsers.cs:121
Sueetie.Core.SueetieUsers.GetUserAvatarUrl(Int32 userID, Boolean useOriginalImage, Boolean useCachedAvatarRoot) in C:\SVN\Projects\Hästliv\Kod\source\Sueetie.Core\SueetieUsers.cs:278
Sueetie.Controls.UserAvatar.OnLoad(EventArgs e) in C:\SVN\Projects\Hästliv\Kod\source\Sueetie.Controls\Controls\UserAvatar.cs:72
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207


Regards / Aki
Dave Burke
#2 Posted : Friday, February 03, 2012 9:38:41 AM(UTC)


Rank: Administration

Joined: 12/7/2008(UTC)
Posts: 1,134
Man
United States

Thanks: 25 times
Was thanked: 53 time(s) in 53 post(s)
MrNiap,

This hasn't come up before. Is it a shared host? Does it occur on multiple machines? How many users are we talking about? Is there restricted application memory pool? SQL Server database on a remote server?

The SueetieUserList is cached once retrieved in the form of a "SueetieThinUser" list consisting of minimal information (which includes avatar info) and of only active members. After that a trip to the database only occurs when the user retrieved is not active.

If anything else comes to mind or any environmental factors to question I'll post back.

Hope this resolves for you.
-Dave
Dave Burke
#3 Posted : Friday, February 03, 2012 9:54:21 AM(UTC)


Rank: Administration

Joined: 12/7/2008(UTC)
Posts: 1,134
Man
United States

Thanks: 25 times
Was thanked: 53 time(s) in 53 post(s)
MrNiap,

One other issue is taking a look at the SQL Proc Sueetie_Users_Get. You'll notice it isn't a straight pull. We need to retrieve user properties from YAF, Analytics and elsewhere. You could try tweaking that proc by creating a table with indexing rather than query directly into a #tempUserTable. You could add an index to the UserID field of SuAnalytics_FilteredUsers, or even remove the analytics data query completely if not filtering anyone. You might also want to add an index to the yaf_user providerKey field, since that's another point of SQL processing.

Good luck,
Dave
MrNiap
#4 Posted : Friday, February 03, 2012 10:09:35 AM(UTC)


Rank: Seeker

Joined: 5/3/2010(UTC)
Posts: 14

Thanks for your quick replies as usual. :)

It's hosted on shared server on discountasp.net. Not that many users yet so it should cause performace problems.

We have started to try to optimze the Proc.


Regards / Aki
Rss Feed  Atom Feed
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF 1.9.6.1 | YAF © 2003-2012, Yet Another Forum.NET
This page was generated in 0.158 seconds.
Copyright © 2008-2012 Sueetie LLC. All rights reserved.
Sueetie