Sitecore에는 Sql Server에서 TempDB를 사용하여 세션 상태 작업의 속도를 높이는 옵션이 있습니다. 사람들을 당황하게 만드는 것은 SQL Server의 서비스를 다시 시작할 때 tempdb가 다시 생성된다는 사실입니다. 이것은 tempdb 내부에서 테이블 구조와 사용자 권한을 다시 생성해야 할 때 문제가 됩니다.
TempDB를 사용하기 위한 테이블 구조와 저장 프로시저를 생성하는 스크립트는 추출된 Sitecore zip 파일 경로 *Sitecore 8.1 rev에 있습니다. xxxxxx\데이터베이스\스크립트* Sessions db performance boost.sql 파일 이 게시물은 이 파일이 하는 일에 대해서는 다루지 않습니다. 그러나 TempDB에 테이블과 인덱스 구조를 생성하는 저장 프로시저를 Master db에 생성하지만 실제로 액세스할 수 있는 권한을 설정하지 않는다는 점을 지적하겠습니다. 테이블과 인덱스 구조를 다시 초기화하고 올바른 권한으로 사용자를 다시 만드는 T-SQL을 사용하여 스크립트를 만들 수 있습니다. Sessions db performance boost.sql을 실행했다고 가정합니다. 이미.
exec [master].[dbo].[Sitecore_InitializeSessionState] --create the tables and indexes in TempDB
USE [tempdb]
IF NOT EXISTS(select name from sys.database_principals where name = 'cdsAccount') --continue if the db user account does not exist
BEGIN
CREATE USER [cdsAccount] FOR LOGIN [sql1\cdsaccount] --create the db user in tempdb
ALTER ROLE [db_datareader] ADD MEMBER [cdsAccount] -- assign the data reader role to our db user
ALTER ROLE [db_datawriter] ADD MEMBER [cdsAccount] -- assign the data writer role to our db user
END
T-SQL은 저장 프로시저를 실행하여 테이블 및 인덱스 구조를 다시 초기화합니다. 그런 다음 데이터베이스 사용자 cdsAccount가 존재합니다. 사용자가 존재하지 않는 경우 사용자를 생성하고 계정에 데이터 리더 및 데이터 작성자 역할을 할당합니다.
코드가 있지만 서비스가 다시 시작될 때 코드를 어떻게 적용합니까? SQL Server 에이전트가 시작될 때 실행하도록 지정하는 SQL 에이전트 작업을 생성할 수 있습니다. 나는 당신을 위해 SQL 작업을 생성하는 완전한 .sql 스크립트를 포함했습니다. 저장소의 readme 파일에는 만들고 확인하려는 데이터베이스 사용자에 대해 변경해야 하는 행이 포함되어 있습니다.
SQL 에이전트 작업이 포함된 T-SQL 스크립트
SQL Server 성능을 최적화하기 위한 Sitecore 문서 스니펫
데이터베이스에 대해 자세히 알아보기
피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 저희와 대화를 시작할 수도 있습니다.