في التدوينة دي تكلم عن تعديلات بسيطة لتحسين أداء ال SQL Server، لو كان عندك مشكلة و الاداء برضه متحسنش ساعتها لازم تشوف ال bottleneck جاية منين و ده هتكلم عنه ف الاخر. بس دي مجرد نصائح عامة ممكن تتطبق في حالات كتير
- امسح ال indexes اللي مش بتستعملها، في كل عملية insert لازم ال Sql Server بيضطر انه يعمل update لل indexes دي، ممكن من خلال مثلًا Sys.dm_db_index_usage_stats تشوف ايه ال indexes اللي استخدامها قليل او معدوم و تشيلها.
- ممكن المشكلة تكون في ال Index Maintenance من الاساس، ممكن يكون عندك indexes و fragmented بصورة كبيرة و محتاج تعملها reorg او rebuild ساعتها انصحك تعمل Job يشتغل مثلًا مرة في الاسبوع يعمل rebuild او reorg حسب ال fragmented value ممكن تبص على scripts بتوع Ola من هناhttps://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html
- ال tempdb لازم تكون محطوطة على هارد سريع، و لو مثلًا شغال على Azure خليها ف ال Temp storage drive
- شوف ال SQL Server مسموحله يستعمل كام core من ال CPU
- تحط value معقولة للـ Max/Min Server Memory
- تفعل ال Lock Pages In Memory ممكن تشوف اللينك ده
- تشوف ال waits اللي بتحصل على ال SQL Server threads و تشوف انواعها جايز بتحصل waits بسبب ال IO او مشكلة ف ال Paging او network latency عالية مثلا ممكن تشوف ال script ده
- تشوف ال queries اللي بتاخد وقت كبير عشان تشتغل ممكن من الscript ده
SELECT TOP 20
total_worker_time/execution_count AS Avg_CPU_Time
,Execution_count
,total_elapsed_time/execution_count as AVG_Run_Time
,total_elapsed_time
,(SELECT
SUBSTRING(text,statement_start_offset/2+1,statement_end_offset
) FROM sys.dm_exec_sql_text(sql_handle)
) AS Query_Text
FROM sys.dm_exec_query_stats
ORDER BY Avg_CPU_Time DESC