решаемые. Причина в некоторой степени связана с автозагрузкой композитора.
Насколько я знаю, композитор хранит список цепочек зависимостей всех используемых файлов. В большинстве случаев, мне кажется, мне не нужно обновлять этот список, потому что список каким-то образом обновлен [неизвестным детектором обновлений].
В любом случае, я решаю эту проблему путем обновления списка, используя composer dump-autoload
на консоли.
[существует кластерный индекс с 6 полями и двумя другими индексами на единственных полях.]
Не зная деталей о полях, я попытался бы найти способ сделать кластерный индекс меньшим.
С SQL Server все кластеризованные поля ключа будут также включены во все некластеризованные индексы (как способ сделать заключительный поиск от некластерного индекса до фактической страницы данных).
Если Вы имеете шесть полей на уровне 8 байтов каждый = 48 байтов, умножаете это на еще два индексных раза 77 миллионов строк - и Вы смотрите на большое количество потраченного впустую пространства, которое переводит в большое количество операций ввода-вывода (и таким образом ухудшает производительность).
Для кластерного индекса для него АБСОЛЮТНО КРАЙНЕ ВАЖНО быть уникальным, стабильным, и как можно меньше (предпочтительно единственный INT или такой).
Marc
Первая вещь, на которую я посмотрел бы, индексирует. При использовании генератора плана выполнения в Studio управления Вы хотите видеть, что индекс ищет, или кластерный индекс ищет. Если Вы видите сканирования, особенно сканирования таблицы, необходимо посмотреть на индексацию столбцов, на которых Вы обычно ищете видеть, улучшает ли это Вашу производительность.
Вы не должны, конечно, должны быть перемещаться в Версию для предприятий для этого.
http://msdn.microsoft.com/en-us/library/ms143432.aspx
У Вас есть некоторая комната для роста.
До проблем производительности это - целый другой вопрос. Кэширование, sharding, нормализация, индексация, оптимизация запросов, настройка кода приложения, и так далее.
Стандарт должен смочь обработать его. Я посмотрел бы на индексацию и запросы, которые Вы используете с таблицей. Вы хотите структурировать вещи таким способом, которым не вызывают Ваши вставки, слишком многие индексируют recalcs, но Ваши запросы могут все еще использовать в своих интересах индекс для ограничения поисков небольшой частью таблицы.
Кроме того, Вы могли бы рассмотреть разделение таблицы. Это позволит Вам делить таблицу на несколько логических групп. Можно сделать это "закулисный", таким образом, это все еще появляется в SQL-сервере как одна таблица даже при том, что это сохранило отдельно, или можно сделать это вручную (создайте новый 'архив' или ежегодную таблицу и вручную отодвиньтесь строки). Так или иначе только сделайте это после рассмотрения других опций сначала потому что, если Вы не разбираетесь в этом, Вы все еще закончите тем, что имели необходимость проверить каждый раздел. Также: разделение действительно требует Enterprise Edition, таким образом, это - другая причина сохранить это для последнего средства.
У Вас должен действительно быть доступ ко всем 77 миллионам записей в единственной таблице?
Например, если Вам только нужен доступ к последнему ценность X месяцев данных, затем Вы могли рассмотреть создание стратегии архивирования. Это могло использоваться для перемещения данных к архивной таблице для сокращения объема данных и впоследствии, время запроса на 'горячей' таблице.
Этот подход мог быть реализован в стандартном выпуске.
Если Вы действительно обновляете до Версии для предприятий, можно использовать разделение таблицы. Снова в зависимости от Вашей структуры данных это может предложить значительные повышения производительности. Разделение может также использоваться для реализации стратегии, ранее упомянутой, но с меньшим количеством административных издержек.
Вот является превосходное Техническое описание на разделении таблицы в SQL Server 2005
http://msdn.microsoft.com/en-us/library/ms345146.aspx
Я надеюсь, что я детализировал, ясно и понятен. Чувствуйте для контакта со мной непосредственно, если Вы требуете дополнительной помощи.
Удачи,
Согласие с Marc и Unkown выше... 6 индексов в кластерном индексе - слишком многие, особенно на таблице, которая имеет только 14 столбцов. У Вас не должно быть больше чем 3 или 4, если это, я скажу 1 или возможно 2. Можно знать, что кластерный индекс является фактической таблицей на диске поэтому, когда запись вставляется, механизм базы данных должен отсортировать его и поместить его в, он отсортировал организованное место на диске. Не кластерные индексы не, они поддерживают поиск 'таблицы'. Мои VLDBs размечаются на диске (КЛАСТЕРНЫЙ ИНДЕКС) согласно 1-й точке ниже.
Извините это является таким длинным, но это чрезвычайно важно. Я имею, только дают Вам здесь минимальную информацию, но поможет тонне. Существуют некоторые инстинктивные чувства и наблюдения, которые входят к стратегиям, используемым этими точками, которые потребуют Вашего времени и тестирования.
Никакая потребность перейти к Версии для предприятий. Я сделал хотя, чтобы говорить функции ранее с разделением. Но я сделал ОСОБЕННО, чтобы иметь намного лучше mult-распараллеливающие возможности с поиском и ДЕФРАГМЕНТАЦИЕЙ онлайн и обслуживанием... В Версии для предприятий это является намного намного лучше и более дружественным по отношению к VLDBs. Стандартный выпуск не обрабатывает выполнение DBCC INDEXDEFRAG с базами данных онлайн также.
В и себя, 77M записи не много для SQL Server. Как Вы загружаете 100 000 записей? это - пакетная загрузка каждый день? или через своего рода приложение OLTP? и это - проблема производительности, которую Вы имеете, т.е. добавляете данные? или действительно ли это - запросы что, давая Вам большинство проблем?
Если Вы добавляете записи 100K за один раз, и добавляемые записи вызывают кластерный индекс к re-org Ваша таблица, которая уничтожит Вашу производительность быстро. Больше деталей о структуре таблицы, индексах и типе вставленных данных поможет.
Кроме того, сумма поршня и скорость Ваших дисков будут иметь большое значение, на чем Вы работаете?
Первоначально я хотел согласиться с Marc. Ширина Вашего кластерного индекса кажется подозреваемым, поскольку это будет по существу использоваться в качестве ключа для выполнения поисков на всех записях. Чем шире кластерный индекс, тем медленнее доступ, обычно. И шесть полевых кластерных индексов чувствуют действительно, действительно подозревайте.
Уникальность не требуется для кластерного индекса. На самом деле лучшие кандидаты на поля, которые должны быть в кластерном индексе, являются, которые не уникальны и не используются в соединениях. Например, в a Persons
таблица, где каждый Person
принадлежит одному Group
и Вы часто присоединяетесь Persons
кому: Groups
, при доступе к пакетам людей группой, Person.group_id
был бы идеальный кандидат, для этого конкретного варианта использования.
Какие диски Вы имеете?
Вы могли бы контролировать некоторые дисковые счетчики, чтобы видеть, ставят ли запросы в очередь.
Вы могли бы переместить эту таблицу в другой диск путем помещения его в другую группу файлов. Вы можете также к тому же с индексами.