Вот решение, использующее purr
:
sample_df<-iris
sample_df$Species<- NULL
library(purrr)
walk2(.x = list(Species=iris$Species,
Sepal.Length=sample_df$Sepal.Length*100),
.y = c("Species", "Sepal.Length"),
function(x,y) {sample_df[y]<<-x})
sample_df
Логика здесь состоит в том, чтобы передавать содержимое переменных и имена переменных как отдельные аргументы, которые объединяются с использованием одного в качестве ссылки и другое как содержание.
Если вы делаете это периодически в своем коде, я бы предложил использовать mutate
из пакета dplyr
.
Шаг 1: установите панель инструментов производительности SQL Server.
Step2: прибыль.
Серьезно, Вы действительно хотите запуститься со взгляда на ту панель инструментов. Больше об установке и использовании это может быть найдено здесь и/или здесь
Для идентификации проблематичных запросов запускают Профилировщика, выбирают следующие События:
фильтр, произведенный, например,
В зависимости от того, что Вы хотите оптимизировать. Обязательно отфильтруйте вывод достаточно к не наличию тысяч просмотра datarows Вашего окна, потому что это повлияет на Вашу производительность сервера!
Ее полезное для входа вывода к таблице базы данных для анализа его впоследствии. Его также полезный для выполнения системного монитора Windows параллельно для просмотра загрузки ЦП, диска io и некоторых счетчиков производительности SQL Server. Настройте sysmon для сохранения данных в файл.
Чем Вы должны заставить производство типичная загрузка запросов и данные volumne на Вашей базе данных видеть многозначительные значения с профилировщиком.
После получения некоторого вывода от профилировщика можно прекратить представлять.
Затем загрузите хранившие данные из профильной таблицы снова в профилировщика и используйте importmenu для импорта вывода из systemmonitor, и профилировщик будет коррелировать вывод sysmon к данным профилировщика SQL. Это - очень хорошая функция.
В том представлении Вы сразу можете identifiy критические ресурсы относительно к Вашей памяти, диску или системе CPU.
При идентификации некоторых запросов, Вы хотите к omtimize, пойдите, чтобы запросить анализатор и смотреть план выполнения и попробовать к индексному использованию omtimize и созданию запроса.
Я имел хороший успех с инструментами Database Tuning, обеспеченными в SSMS или SQL Profiler при работе над SQL Server 2000.
Ключ должен работать с ХОРОШИМ демонстрационным набором, отследить часть производственной рабочей нагрузки TRUE для analsys, который получит лучший полный удар для маркера.
Я использую SQL Profiler, который идет с SQL Server. Большинство плохо работающих запросов, которые я нашел, не использует много ЦП, но генерирует тонну диска IO.
Я склонен вставлять фильтры на чтении с диска и искать запросы, которые имеют тенденцию делать больше чем приблизительно 20,000 чтений. Затем я смотрю на план выполнения относительно тех запросов, который обычно дает Вам информацию, необходимо оптимизировать или запрос или индексы на включенных таблицах.
Я использую несколько различных методов.
При попытке оптимизировать определенный запрос, используйте Query Analyzer. Используйте инструменты там как отображение плана выполнения и т.д.
Для Вашей ситуации, где Вы не уверены, КАКОЙ запрос работает медленно, один из самых мощных инструментов, которые можно использовать, SQL Profiler.
Просто выберите базу данных, Вы хотите представить, и позволить ей сделать свою вещь.
Необходимо позволить ему работать за достойным количеством времени (это варьируется на трафике к приложению), и затем можно вывести результаты в таблице и начать анализировать их.
Вы собираетесь хотеть посмотреть на запросы, которые имеют много чтений или поднимают много процессорного времени и т.д.
Оптимизация является переносом, но продолжайте идти в ней, и самое главное, не предполагайте, что Вы знаете, где узкое место, найдите доказательство того, где это, и зафиксируйте ее.