Categories
Technical

Improving SQL Server Performance

التطوير من مزود Microsoft SQL Server 2000 إلى Microsoft SQL 2008 | الأمين سوفت

في التدوينة دي تكلم عن تعديلات بسيطة لتحسين أداء ال SQL Server، لو كان عندك مشكلة و الاداء برضه متحسنش ساعتها لازم تشوف ال bottleneck جاية منين و ده هتكلم عنه ف الاخر. بس دي مجرد نصائح عامة ممكن تتطبق في حالات كتير

  1. امسح ال indexes اللي مش بتستعملها، في كل عملية insert لازم ال Sql Server بيضطر انه يعمل update لل indexes دي، ممكن من خلال مثلًا Sys.dm_db_index_usage_stats تشوف ايه ال indexes اللي استخدامها قليل او معدوم و تشيلها.
  2. ممكن المشكلة تكون في ال Index Maintenance من الاساس، ممكن يكون عندك indexes و fragmented بصورة كبيرة و محتاج تعملها reorg او rebuild ساعتها انصحك تعمل Job يشتغل مثلًا مرة في الاسبوع يعمل rebuild او reorg حسب ال fragmented value ممكن تبص على scripts بتوع Ola من هناhttps://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html
  3. ال tempdb لازم تكون محطوطة على هارد سريع، و لو مثلًا شغال على Azure خليها ف ال Temp storage drive
  4. شوف ال SQL Server مسموحله يستعمل كام core من ال CPU
  5. تحط value معقولة للـ Max/Min Server Memory
  6. تفعل ال Lock Pages In Memory ممكن تشوف اللينك ده

  7. تشوف ال waits اللي بتحصل على ال SQL Server threads و تشوف انواعها جايز بتحصل waits بسبب ال IO او مشكلة ف ال Paging او network latency عالية مثلا ممكن تشوف ال script ده
  8. تشوف ال 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

Leave a Reply

Your email address will not be published. Required fields are marked *