Как мне программно создавать нерегламентированные запросы быстро?

Я've использовали сводную таблицу Excel для анализа данных из базы данных, потому что это позволяет мне, чтобы "мясорубка" и очень быстро. Как мы знаем, что в наших таблицах базы данных, мы все можем писать запросы SQL, которые делают то, что делает сводную таблицу.

Но мне интересно, почему сводную таблицу можно построить запросы так быстро, как он знает, что ничего о данных, и значения соотношения между полями данных, мы даем ему?

Поставим вопрос по-другому, как мы можем построить специальной SQL-запросы в такой быстрый и эффективный способ? (на"Использование сводной таблицы, конечно!&я, да, но мне нужен программный способ).

Комментарии к вопросу (1)

Просто манипулировать ваш заказ и сгруппируйте предложения по мере необходимости.

Excel-это быстро, потому что все данные находятся в памяти, и он может быть отсортирован быстро и эффективно.

Комментарии (2)

@Марк выкуп наверняка на что-то с понятием Excel для сохранения данных в памяти, что делает его быстрее в вычислительном отношении. Это's также возможно, что Excel предварительно индексов массивов данных таким образом, что делает его более отзывчивым, чем базы данных.

Там'с одним существенным, неалгоритмический возможность, почему это's быстрее: в Excel, в сводных таблица используется, нет понятия соединения. Когда вы'вновь получение данных ad hoc с вашей базы данных, каких-либо соединений или корреляционные связи между таблицами в результате дальнейших поисков, сканы, индекс нагрузки и т. д. С Excel все данные в одном месте (ОЗУ или нет), он может выполнять запросы без необходимости предварительной форме наборов данных. Если вы были, чтобы загрузить данные из базы данных во временную таблицу, было бы интересно посмотреть, как нерегламентированные запросы к этой таблице складываются, производительность-мудрый, против первенствовать.

Одна вещь,'ы, хотя некоторые,: хотя базы данных являются отличными инструментами для составления точных отчетов, традиционно-нормализованной базы данных будет гораздо меньше, чем оптимальная для нерегламентированных запросов. Поскольку нормализованные структуры данных сосредоточиться на целостность превыше всего (если я вправе считать, что "свобода"), они жертвуют специальной оптимизации за счет учета все данные толкового. Хотя это плохой пример, считают эту нормализованную схему:

в <предварительно> +--------+ +---------+ |tblUsers| |luGenders| +--------+ +---------+ |идентификатор | |genderID | |genderID|<--->|пол | +--------+ +---------+

Выберите * от luGenders;

1 женщина 2 Мужчина </пред>

Если, в данном примере, мы хотели узнать о числе женщин/мужчин-пользователей в нашей системе, базе данных, необходимо, чтобы процесс соединения и вести себя соответственно (опять же, это плохой пример из-за малого количества соединений и низкое число возможных значений, которые в целом должны привести к некоторому базы данных-оптимизация). Однако, если вы были сбросить эти данные в Excel, вы'd по-прежнему взиматься штраф базе, чтобы вытащить данные, но на самом деле вращение данных в Excel будет довольно быстро. Это может быть, что это понятие вверх-стойка, фиксированная цена штрафа будет не хватать вашей идеей преуспеть быстрее, чем прямой нерегламентированные запросы, но я не'т иметь данные для обсуждения.

Наиболее тангенциальная точка, однако, является, что во время общей базы данных хороши для точности, они часто сосут в нерегламентированных отчетов. Для получения нерегламентированных отчетов, это'ы часто приходится де-нормализовать (на"складе" - а) данные в более запрашиваемых структуры. Ищу Инфо на хранение данных обеспечит много хороших результатов по предмету.

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

Я'd и настоятельно рекомендуем [хранилище данных инструментарий][1]. Для записи, я'м не дБА, я'м всего лишь скромный аналитик, который проводит 80 часов в неделю munging в Excel и Oracle. Я знаю о твоей боли.

[1]: http://www.amazon.com/Data-Warehouse-Toolkit-Complete-Dimensional/dp/0471200247/ref=pd_bbs_sr_1?ie=UTF8&s=books&=1235597755&amp qid;sr=8-1

Комментарии (0)

Мое интуитивное чувство подсказывает мне, что ответа придется что-то делать с осью контур таблицы, которая имеет исправлено количество зон, а именно:

- the Page Fields zone  
- the Column Fields zone  
- the Row Fields zone and
- the Data zone

В мое дикое предположение:

- The Page zone builds the WHERE part of the ad-hoc query.  
- The Column zone will put whichever fields drag-dropped to it in the GROUP BY clause.  
- The Row zone will build a SELECT DISTINCT 
- The Data zone will apply an AGGREGATE function to the field drag-dropped to it. 

Как вы думаете, что произойдет, что "За сценой" когда мы перетащите поля в этих зонах?

Комментарии (0)