Форматирование ReSharper: выровняйте равные операнды

Вы рассмотрели создание суррогатного столбца идентификационных данных (введите bigint), и использование, что как кластерный индекс? Затем создайте свой первичный ключ как некластеризованный уникальный индекс.

С таблицей этого размера, довольно возможно, что индекс и фрагментация страницы являются большой проблемой производительности. Суррогатный кластерный индекс гарантирует, что все вставляет, в конце таблицы, которая может почти полностью устранить фрагментацию страницы (если строки не удалены). Фрагментация страницы Less == больше страниц на IO, который является очень хорошей вещью.

Это также позволит Вам периодически дефрагментировать уникальный индекс, на котором Вы запрашиваете, который сделает его намного более эффективным. Делайте это часто или по крайней мере контролируйте индексную фрагментацию на этой таблице регулярно.

Эти повышения производительности могут быть довольно поразительными - если Ваш текущий PK высоко фрагментируется, индекс ищут, может включить гораздо больше IO, чем он должен.

, После того как Вы реализовали это, рассмотрите (иначе, попробуйте его и мера ;-) добавив некластеризованный индекс на столбце k7.

27
задан MickyD 10 January 2018 в 03:11
поделиться

3 ответа

В ReSharper (в настоящее время) нет возможности сделать это из коробки. К счастью, ReSharper имеет очень богатый API расширяемости (хотя и плохо документированный). Я потратил много времени на Reflector, пытаясь разобраться во всем.

Мы используем аналогичное руководство по выравниванию для членов класса в компании, в которой я работаю (в крайнем случае, мы также выравниваем параметры методов). Я написал плагин для ReSharper, чтобы помочь мне в этом. Это модуль «Очистка кода», который запускается когда-нибудь во время очистки кода ( Ctrl - E , Ctrl - F ) и выравнивает код для вас. Это также делает класс закрытым , если это возможно.

Некоторые примеры :

Параметры метода:

public void DoSomething(string      name,
                        int         age,
                        IEnumerable coll)

(вам нужно будет изменить Формальные параметры переноса на Выбирать всегда в Параметры-> Стиль форматирования-> Разрывы строк и перенос для правильной работы )

Константы:

private const int    RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001;
private const int    CONNECT_COMMANDLINE        = 0x00000800;
private const int    CONNECT_INTERACTIVE        = 0x00000008;
private const string RESOURCE_NAME              = "Unknown";


Вы можете загрузить исходный код с моего SkyDrive.
Edit Кажется, я потерял доступ к этому SkyDrive, а также потерял файлы. Это было до github :(

Обратите внимание, что вам понадобится несколько вещей для его компиляции / отладки:

  1. Обновите Аргументы командной строки на вкладке Отладка в Project Свойства с правильным путем выходная DLL:

    /ReSharper.Plugin "X: \ \ MyCompany.CodeFormatter \ MyCompany.CodeFormatter \ bin \ Debug \ MyCompany.CodeFormatter.dll"

    Это позволяет отлаживать плагин через F5 , и будет автоматически устанавливается в Плагины ReSharper в новом Экземпляр Visual Studio, который будет open.

  2. Плагин предназначен для ReSharper 4.5 и ссылается на библиотеки DLL этой версии. Если вы установили ReSharper где-нибудь еще, кроме C: \ Program Files \ JetBrains \ ReSharper , вам придется исправить ссылки.
  3. Это не выравнивает переменные внутри методов, но это не должно быть сложно add:)

После установки просто запустите Code Cleanup , чтобы исправить выравнивание (к сожалению, я так и не получил ответа от JetBrains о том, как это сделать при форматировании скобок / точек с запятой).

Сборку переименовали в защиту невиновных :)

Удачи!

10
ответ дан 28 November 2019 в 05:41
поделиться

Насколько мне известно, это, к сожалению, невозможно с помощью Resharper.

1
ответ дан 28 November 2019 в 05:41
поделиться

Думаю, стоит отметить, что в Visual Studio Productivity Power Tools есть функция выравнивания назначений. Вот ссылка на Инструменты повышения производительности Visual Studio 2013 .

10
ответ дан 28 November 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: