Giới thiệu
Sitecore có tùy chọn sử dụng TempDB trong SQL Server để tăng tốc hoạt động session state. Điều khiến mọi người bất ngờ là thực tế tempdb được tạo lại (recreated) khi restart service của SQL Server. Điều này trở thành vấn đề khi bạn phải tạo lại cấu trúc bảng và user permissions bên trong tempdb.
Script tạo cấu trúc bảng và stored procedures để sử dụng TempDB nằm trong đường dẫn file zip Sitecore đã giải nén: Sitecore 8.1 rev. xxxxxx\Databases\Scripts. File Sessions db performance boost.sql. Bài này không đi sâu vào việc file này làm gì. Tuy nhiên, hãy cho tôi chỉ ra rằng nó tạo một stored procedure trong Master db tạo cấu trúc bảng và index trong TempDB, nhưng nó không thiết lập permissions để thực sự truy cập nó. Chúng ta có thể tạo script dùng T-SQL sẽ tái khởi tạo (reinitialize) cấu trúc bảng và index và tạo lại user với permissions đúng. Điều này giả định bạn đã chạy Sessions db performance boost.sql rồi.
exec [master].[dbo].[Sitecore_InitializeSessionState] --tạo bảng và index trong TempDB
USE [tempdb]
IF NOT EXISTS(select name from sys.database_principals where name = 'cdsAccount')
--tiếp tục nếu db user account không tồn tại
BEGIN
CREATE USER [cdsAccount] FOR LOGIN [sql1\cdsaccount] --tạo db user trong tempdb
ALTER ROLE [db_datareader] ADD MEMBER [cdsAccount] --gán role data reader cho db user
ALTER ROLE [db_datawriter] ADD MEMBER [cdsAccount] --gán role data writer cho db user
END
T-SQL thực thi stored procedure để tái khởi tạo cấu trúc bảng và index. Sau đó kiểm tra xem database user cdsAccount có tồn tại không. Nếu user không tồn tại, nó tạo user và gán role data reader và data writer cho account.
Chúng ta có mã, nhưng làm thế nào áp dụng nó khi service restart? Chúng ta có thể tạo một SQL Agent Job chỉ định chạy khi SQL Server Agent khởi động. Tôi đã bao gồm script .sql hoàn chỉnh tạo sql job cho bạn. File readme trong repository bao gồm các dòng bạn cần thay đổi cho database user bạn muốn tạo và kiểm tra.
T-SQL Script với SQL Agent Job
Sitecore documentation snippet để tối ưu hóa hiệu suất SQL Server
Tìm hiểu thêm về Databases
Sử dụng tab Feedback để đưa ra nhận xét hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.