Общее время процесса PROC SQL, понимание журнала - PullRequest
0 голосов
/ 07 июня 2018

Я хотел бы лучше понять журнал времени, чтобы улучшить производительность.

Мое реальное время обычно намного больше, чем время процессора.Ожидается ли это?

Разница связана с доступом к диску?Операции в памяти включены в процессорное время или в режиме реального времени?

Есть ли полезная информация об оптимизации производительности в других строках журнала?

Пример:

NOTE: PROCEDURE SQL used (Total process time):
      real time           9:06.00
      user cpu time       1:36.79
      system cpu time     19.11 seconds
      memory              7463.31k
      OS Memory           24628.00k
      Timestamp           06/07/2018 12:45:31 PM
      Page Faults                       7
      Page Reclaims                     1566
      Page Swaps                        0
      Voluntary Context Switches        370694
      Involuntary Context Switches      36835
      Block Input Operations            0
      Block Output Operations           0

1 Ответ

0 голосов
/ 07 июня 2018

Процессорное время - это объем обработки процессора - сколько тактов процессора было использовано.Это на ядро;оно может быть больше реального времени, если используется несколько ядер (виртуальных или физических).Например, что-то интенсивно использующее процессор и работающее с параллельной обработкой, использует 4 ядра на вашей машине в течение 2 минут, реальное время будет 2 минуты, а время процессора может достигать 8 минут.

Реальное время буквальновремя между началом и окончанием работы.В случае proc sql, пока не будет достигнуто quit, поэтому, если вы оставите proc sql открытым без выхода, реальное время может быть до следующего запуска процедуры.

Большую часть времениразница между временем ЦП и реальным временем, как вы говорите, заключается в дисковом вводе-выводе - если вы читаете по сети или с вращающегося диска, вполне вероятно, что ваш дисковый ввод-вывод займет больше времени, чем ваш ЦП.

Чтение «файла» из памяти не включается во время ЦП, за исключением случаев, когда оно включает ЦП.

Другие поля полезны для диагностики проблем производительности на разных уровнях.Объем используемой памяти может указывать на конкретные проблемы с вашим кодом (если он использует огромные объемы памяти, возможно, вы делаете что-то неэффективно).

Возможно, вы захотите прочитать некоторые статьи по эффективности и оптимизации SQL, например Кирка Лафлера - см., В частности, обсуждение _METHOD и _TREE в конце.И, конечно, различные способы получения дополнительной информации упомянуты в документации , такой как STIMER и ОБРАТНАЯ СВЯЗЬ.

...