Ваша лучшая ставка производительности должна использовать Индексы на полях, которые Вы часто используете. При использовании SQL Server, можно использовать профилировщика, чтобы представить определенную базу данных и взять файл, что выводы и используют настраивающийся мастер для получения рекомендаций на том, куда поместить индексы. Мне также нравится использовать профилировщика для спугивания длительных хранимых процедур, у меня есть лучшие десять худших списков преступников, которые я публикую каждую неделю, сохраняет людей честными :D.
1: Вы можете создавать свои собственные идентификаторы, передав их как часть хэша опций:
<%= check_box_tag "product_ids[]", product.id, false, :id => "product_#{product.id}" %>
Для 2 и 3 я бы рекомендовал посмотреть этот Railscast .