Thread: ASP.NET/ASP.NET sessions state

ASP.NET sessions state

Is it necessary to create ASP.NET 4.0 SQL session state database, distinct from existing ASP.NET 2.0 ASPState DB?


stackoverflow.com/questions/2922263/is-it-necessary-to-create-asp-net-4-0-sql-session-state-database-distinct-from





Re: ASP.NET sessions state

USE [aspnetdb]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER OFF

GO


        ALTER PROCEDURE [dbo].[DeleteExpiredSessions]

        AS

            SET NOCOUNT ON

            SET DEADLOCK_PRIORITY LOW


            DECLARE @now datetime

            SET @now = GETUTCDATE()


            CREATE TABLE #tblExpiredSessions

            (

                SessionID nvarchar(88) NOT NULL PRIMARY KEY

            )


            INSERT #tblExpiredSessions (SessionID)

                SELECT SessionID

                FROM [aspnetdb].dbo.ASPStateTempSessions WITH (READUNCOMMITTED)

                WHERE Expires < @now


            IF @@ROWCOUNT <> 0

            BEGIN

                DECLARE ExpiredSessionCursor CURSOR LOCAL FORWARD_ONLY READ_ONLY

                FOR SELECT SessionID FROM #tblExpiredSessions


                DECLARE @SessionID nvarchar(88)


                OPEN ExpiredSessionCursor


                FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID


                WHILE @@FETCH_STATUS = 0

                    BEGIN

                        DELETE FROM [aspnetdb].dbo.ASPStateTempSessions WHERE SessionID = @SessionID AND Expires < @now

                        FETCH NEXT FROM ExpiredSessionCursor INTO @SessionID

                    END


                CLOSE ExpiredSessionCursor


                DEALLOCATE ExpiredSessionCursor


            END


            DROP TABLE #tblExpiredSessions


        RETURN 0     





Re: ASP.NET sessions state

FIX: Blocking problems may occur when you use SQL Server to store ASP.NET session state information for a Web site that experiences high loads

support.microsoft.com/kb/939866





Re: ASP.NET sessions state

ASPNet SessionDB Problem with LCK_M_U locks and Excessive Calls to TempGetStateItemExclusive3


speedsql.blogspot.co.uk/2010/01/aspnet-session-state-db-problem-with.html





Re: ASP.NET sessions state

Find the size fo the sessions used by your application:


SELECT

    a.SessionId,

    SUBSTRING(a.SessionId, 25, 8) AS AppIDHex,

    b.AppId AS AppIDDec,

    b.AppName,

    DATALENGTH(a.SessionItemLong) AS SessionSize

FROM

    dbo.ASPStateTempSessions AS a

    LEFT OUTER JOIN

    dbo.ASPStateTempApplications AS b

    ON

    SUBSTRING(a.SessionId, 25, 8) =

    SUBSTRING(sys.fn_varbintohexstr(CONVERT(VarBinary,b.AppId)), 3, 8)

WHERE

    (DATALENGTH(a.SessionItemLong) > 0)

ORDER BY SessionSize DESC


Source: blogs.msdn.com/b/rextang/archive/2008/01/13/7091390.aspx


 





Re: ASP.NET sessions state

Implementing a Session-State Store Provider


msdn.microsoft.com/en-us/library/ms178587.aspx


Sample Session-State Store Provider


msdn.microsoft.com/en-us/library/ms178588.aspx


msdn.microsoft.com/en-us/library/ms178589.aspx