<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; SQL: помогите с оптимизацией запроса]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5434&amp;type=atom" />
	<updated>2011-01-31T16:22:34Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=5434</id>
		<entry>
			<title type="html"><![CDATA[Re: SQL: помогите с оптимизацией запроса]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=44675#p44675" />
			<content type="html"><![CDATA[<p>Тема закрыта...</p>]]></content>
			<author>
				<name><![CDATA[Евген]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25253</uri>
			</author>
			<updated>2011-01-31T16:22:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=44675#p44675</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SQL: помогите с оптимизацией запроса]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=44669#p44669" />
			<content type="html"><![CDATA[<p>Не уверен что с этим запросом можно что-то существенное сделать(впрочем большим специалистом в SQL я не являюсь:)). С другой стороны, если такой запрос в течении дня нужно выполнять часто, то есть смысл сделать ещё одну таблицу (например, software_last), в которую раз в сутки(ночью) по шедулеру заносить последние данные по всем АРМ(предварительно очищая таблицу от старых данных). И уже из software_last получать информацию о кол-ве установок программ на рабочих местах.</p>]]></content>
			<author>
				<name><![CDATA[BeS Yara]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25643</uri>
			</author>
			<updated>2011-01-31T12:51:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=44669#p44669</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[SQL: помогите с оптимизацией запроса]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=44526#p44526" />
			<content type="html"><![CDATA[<p>Здравствуйте !<br />Помогите с составлением запроса, смысл в следующем:<br />Есть таблица (software) в которой собрано более 100 тыс. записей следующего содержания:<br />Date - дата инвентаризации<br />arm - имя автоматизированного рабочего места<br />software - название установленного программного обеспечения.</p><p>Один и тот же АРМ может иметь несколько результатов инвентаризации ПО по датам, но не более одного результата в день.<br />Нужно составить такой запрос, чтобы выдавался список всего ПО и количество его установок на АРМах, но состоящих из результатов самой последней инвентаризации по каждому АРМу. Потому что ненужное ПО уже могли деинсталлировать.<br />Я сделал такой запрос:<br /></p><div class="codebox"><pre><code>select b.software, count(b.software) from software b where b.date in (select max(a.date) from software a where a.arm=b.arm group by a.arm) group by b.software</code></pre></div><p>Запрос работает, но ужасно долго... подозреваю что нужно сделать через использование EXISTS, но никак не получается, не пойму почему... :-(</p>]]></content>
			<author>
				<name><![CDATA[Евген]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25253</uri>
			</author>
			<updated>2011-01-29T10:45:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=44526#p44526</id>
		</entry>
</feed>
