Low performance

i dealing with this code, but i always getting more than 10 seconds to
load, i even upgraded the server, but is the same.... i know i have some
database design problem, but i cant modify that.

i am showing all the prices from differents locations of products of a
category also in different time range, because the prices change every
15 days in each location.

   # controller

    def prods_x_cat
     # This will load all the products of a category
     @products = Product.prods_x_cat(params[:id],:include =>
:raw_datas)
     @cortes = RawData.cortes
      respond_to do |format|
        format.js { render :layout=>false}
      end
    end

   # prods_x_cat.js.erb

     var jqxhr1 = $.ajax($("#loading_overlay .loading_message,
#loading_overlay").fadeIn());
     $('#datos').html("<%= escape_javascript render
:partial=>'/shared/prods_x_cat'%>")

   # view

        <%@cortes.each do |c|%>
    <a href="#<%=c.corte%>" class="round_top"><%=c.corte%></a>
        <%end%>
        <%@cortes.each do |c|%>
         <%@fecha = c.corte_real%>
         <div id="<%=c.corte%>" class="block no_padding">
         <table class="display datatable">
    <thead>
    <tr>
          <th>SKU</th>
                <%Company.active.order('table_field ASC').each do |c|%>
                    <th><%=c.abbr%></th>
                <%end%>
          <th>Average</th>
          <th>Mode</th>
          <th>Minimum</th>
          <th>Maximum</th>
         </tr>
    </thead>
    <tbody>
        <%@products.each do |p|%>
         <tr class="gradeA">
        <td><%=p.name%></td>
        <%p.raw_datas.where("product_id='#{p.id}' and
corte_real='#{@fecha}'").each do |prd|%>
          <td><%=prd.location1.to_f.round(2)%></td>
          <td><%=prd.location2.to_f.round(2)%></td>
          <td><%=prd.location3.to_f.round(2)%></td>
          <td><%=prd.location4.to_f.round(2)%></td>
          <td><%=prd.location5.to_f.round(2)%></td>
          <td><%=prd.location6.to_f.round(2)%></td>
          <td><%=prd.location7.to_f.round(2)%></td>
          <td><%=prd.location8.to_f.round(2)%></td>
          <td><%=prd.promedio.to_f.round(2)%></td>
          <td><%=prd.moda%></td>
          <td><%=prd.minimo.to_f.round(2)%></td>
          <td><%=prd.maximo.to_f.round(2)%></td>
         <%end%>
         </tr>
        <%end%>
        </tbody>
        </table>
       </div>
       <%end%>
       </div>

i know it should be something with the query, still don't know

1. are you sure all foreign keys are indexed
2. could you also post table structures and queries generated, it
might help to understand the problem