<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%82%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5_%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2</id>
	<title>Профилирование и трассировка на уровне отдельных запросов - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%82%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5_%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%82%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5_%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2&amp;action=history"/>
	<updated>2026-06-06T18:34:23Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%82%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5_%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2&amp;diff=1960&amp;oldid=prev</id>
		<title>imported&gt;Aapoludnitsin: Новая страница: «{{Карточка_командного_проекта |name=Профилирование и трассировка на уровне отдельных запр…»</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%82%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5_%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2&amp;diff=1960&amp;oldid=prev"/>
		<updated>2018-10-15T11:49:50Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{Карточка_командного_проекта |name=Профилирование и трассировка на уровне отдельных запр…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Карточка_командного_проекта&lt;br /&gt;
|name=Профилирование и трассировка на уровне отдельных запросов&lt;br /&gt;
|company=Яндекс&lt;br /&gt;
|semester=Осень 2018&lt;br /&gt;
|course=3-4&lt;br /&gt;
|number_of_students=?&lt;br /&gt;
|categorize=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В ClickHouse уделяется большое внимание интроспекции производительности запросов. Существует системная таблица с логом запросов, а также с логом всех потоков, участвующих в параллельной обработке запроса. В эти таблицы записываются счётчики производительности, отслеживаемые во время выполнения запроса, что позволяет детально посмотреть, сколько и каких ресурсов было потрачено, что является узким местом. Но есть потребность иметь возможность включить сбор ещё более детальных данных для конкретных запросов.&lt;br /&gt;
&lt;br /&gt;
Для начала мы встроим в ClickHouse сэмплирующий профайлер уровня запроса. С указанной периодичностью (согласно cpu time или wall clock time), в потоках выполнения запроса будут собираться стек трейсы и записываться в отдельную системную таблицу, что позволит построить профиль (например, в виде flame graph) отдельных запросов.&lt;br /&gt;
&lt;br /&gt;
Далее мы попробуем обобщить счётчики производительности, ограничения на использования ресурсов, и трейспоинты. Трейспоинты позволяют динамически добавлять вызов нужного кода в определённые места в программе. Это может быть логгирование, sleep или fault injection для отладки. Одновременно с этим попробуем воспользоваться функциональностью X-Ray, доступной в LLVM.&lt;br /&gt;
&lt;br /&gt;
Также в рамках работы мы добавим в системную таблицу информацию обо всех прочитанных файлах во время обработки запроса и о каждом использованном столбце всех таблиц, участвующих в обработке запроса.&lt;/div&gt;</summary>
		<author><name>imported&gt;Aapoludnitsin</name></author>
	</entry>
</feed>