j'ai un module admin basé sur une table avec beaucoup d'enregistrement (12235) il est vrai mais je trouve que 224926ms cela fait beaucoup quand même:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Configuration 12 32.69 0 
Factories 1 112.57 0 
Action "asset/index" 1 223980.80 99 
Database (Doctrine) 6 0.08 0 
View "Success" for "asset/index" 1 555.60 0 
Partial "asset/_assets" 1 2.18 0 
Partial "asset/_flashes" 1 2.18 0 
Partial "asset/_list_header" 1 2.08 0 
Partial "asset/_filters" 1 202.13 0 
Partial "asset/_filters_field" 2 186.14 0 
Partial "asset/_list" 1 206.70 0 
Partial "asset/_list_th_tabular" 1 8.44 0 
Partial "asset/_pagination" 1 10.45 0 
Partial "asset/_list_td_batch_actions" 10 22.14 0 
Partial "asset/_list_td_tabular" 10 29.94 0 
Partial "asset/_list_td_actions" 10 28.06 0 
Partial "asset/_list_batch_actions" 1 3.47 0 
Partial "asset/_list_actions" 1 2.13 0 
Partial "asset/_list_footer" 1 1.67 0
surtout que j'ai modifié ma requete pour réduire l'accés a la base de données je n'en ai plus que 6.

mon schéma:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Asset:
  tableName: asset
  actAs: [Timestampable]
  columns:
    typeasset_id: integer
    value: string(255)
    groupasset_id: integer
    useit: boolean
    exist: boolean
    lastview: date
  indexes:
    unique1:
      fields: [typeasset_id,value,groupasset_id]
      type: unique
  relations:
    type:
      class: Typeasset
      local: typeasset_id
      foreign: id
      foreignAlias: listTypeAsset
      onDelete: CASCADE
    group:
      class: groupasset
      local: groupasset_id
      foreign: id
      foreignAlias: listGroupAsset
ma requete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public function activeAsset(){
		set_time_limit(300);
		//die("dans active asset");
    	$q = $this->createQuery('a')
			->leftJoin('a.type')
			->leftJoin('a.group')
    		->where('lastview = ?', $this->getLastDate());
    	//die($q->getSqlQuery());
    	return $q;
	}
mon generator.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
generator:
  class: sfDoctrineGenerator
  param:
    model_class:           asset
    theme:                 admin
    non_verbose_templates: true
    with_show:             true
    singular:              ~
    plural:                ~
    route_prefix:          asset
    with_doctrine_route:   true
    actions_base_class:    sfActions
 
    config:
      actions: ~
      fields:  ~
      list:    
        display: [group, type, value]
        max_per_page: 10
        object_actions:          
          #Detail: ~    
          _edit: ~     
        table_method: activeAsset
      filter:  
        display: [typeasset_id, site]
      form:    ~
      edit:    ~
      new:     ~