Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

เพิ่มประสิทธิภาพ Sitecore: TempDB Optimization Add-on

ภาพรวม

Sitecore ใช้ TempDB ใน SQL Server เพื่อเร่ง Session State Operations ปัญหา: TempDB ถูกสร้างใหม่ทุกครั้งที่ SQL Server Service Restart ทำให้ต้องสร้าง Table Structure และ User Permissions ใหม่ใน TempDB ทุกครั้ง

Script สร้าง Table Structure และ Stored Procedures สำหรับ TempDB อยู่ที่: Sitecore 8.1 rev. xxxxxx\Databases\Scripts\Sessions db performance boost.sql

File นี้สร้าง Stored Procedure ใน Master DB ที่สร้าง Table/Index ใน TempDB แต่ ไม่ตั้ง Permissions ให้ Access ได้

Solution: T-SQL Script Reinitialize TempDB

สร้าง Script Reinitialize Table/Index Structure และ Recreate User ด้วย Permissions ถูกต้อง (สมมติรัน Sessions db performance boost.sql แล้ว)

EXEC [master].[dbo].[Sitecore_InitializeSessionState]  -- สร้าง Tables/Indexes ใน TempDB
USE [tempdb]
IF NOT EXISTS (SELECT name FROM sys.database_principals WHERE name = 'cdsAccount')
BEGIN
    CREATE USER [cdsAccount] FOR LOGIN [sql1\cdsaccount]  -- สร้าง DB User ใน TempDB
    ALTER ROLE [db_datareader] ADD MEMBER [cdsAccount]    -- Data Reader Role
    ALTER ROLE [db_datawriter] ADD MEMBER [cdsAccount]    -- Data Writer Role
END

Script นี้: 1) Exec SP Reinitialize Structure 2) Check User cdsAccount 3) ถ้าไม่มี สร้าง User และ Grant db_datareader/db_datawriter Roles

การ Apply เมื่อ Service Restart

สร้าง SQL Agent Job รันเมื่อ SQL Server Agent Startup ได้ Package .sql Script สร้าง Job ให้แล้ว (README ใน Repository มีรายละเอียดการเปลี่ยน Database User)

สรุป

TempDB Optimization ช่วย Sitecore Session State Performance แตต้องจัดการ Reinitialization หลัง SQL Server Restart SQL Agent Job แบบ Startup แก้ปัญหานี้ได้อัตโนมัติ