Нет, не используйте ggplot. См. Обсуждение в потоке в http://groups.google.com/group/ggplot2/browse_thread/thread/8d2acbfc59d2f247 , где Хэдли объясняет, почему это невозможно, но дает предложенную альтернативу (граненые графики, один со всеми данными, один увеличен в определенной области).
При использовании кластерного индекса строки физически хранятся на диске в том же порядке, что и индекс. Следовательно, может быть только один кластеризованный индекс.
При некластеризованном индексе существует второй список, который имеет указатели на физические строки. У вас может быть много некластеризованных индексов, хотя каждый новый индекс увеличивает время, необходимое для записи новых записей.
Обычно быстрее читать из кластерного индекса, если вы хотите вернуть все столбцы. Вам не нужно сначала переходить к индексу, а затем к таблице.
Запись в таблицу с кластеризованным индексом может быть медленнее, если есть необходимость переупорядочить данные.
Кластеризованный индекс означает, что вы указываете базе данных хранить близкие значения, фактически близкие друг к другу на диске. Это дает преимущество быстрого сканирования / извлечения записей, попадающих в некоторый диапазон значений кластеризованного индекса.
Например, у вас есть две таблицы, Customer и Order:
Customer
----------
ID
Name
Address
Order
----------
ID
CustomerID
Price
Если вы хотите быстро получить все заказы одного конкретного клиента , вы можете создать кластерный индекс в столбце «Идентификатор клиента» таблицы заказов. Таким образом, записи с одинаковым идентификатором клиента будут физически храниться рядом друг с другом на диске (в кластере), что ускоряет их извлечение.
PS Индекс на идентификаторе клиента, очевидно, не будет уникальным, поэтому вам нужно либо добавить второе поле "унифицировать" индекс или позволить базе данных делать это за вас, но это уже другая история.
Относительно нескольких индексов. У вас может быть только один кластеризованный индекс для каждой таблицы, потому что он определяет физическое расположение данных. Если вы хотите провести аналогию, представьте себе большую комнату со множеством столов. Вы можете сложить эти таблицы в несколько рядов или собрать их все вместе, чтобы сформировать большой стол для переговоров, но не в обоих направлениях одновременно. Таблица может иметь другие индексы, тогда они будут указывать на записи в кластеризованном индексе, который, в свою очередь, наконец скажет, где найти фактические данные.
Очень простым, нетехническим практическим правилом было бы то, что кластерные индексы обычно используются для вашего первичного ключа (или, по крайней мере, уникального столбца), а некластеризованные - используется для других ситуаций (возможно, внешний ключ). Действительно, SQL Server по умолчанию создает кластеризованный индекс для столбца (столбцов) первичного ключа. Как вы, наверное, уже знаете, кластеризованный индекс относится к способу физической сортировки данных на диске, что означает, что это хороший универсальный выбор для большинства ситуаций.