[eluser]oeligerole[/eluser]
thank you for the replie, i enabled the profiler but nothing really happend.
In one of the table I join I have about 50k rows ... Yeah it is a bit slow but it works fine when I put something out in the controller or the model.
URI STRING
No URI data exists CLASS/METHOD
anzeige/filter MEMORY USAGE BENCHMARKS Loading Time Base Classes 0.0219
Controller Execution Time ( Anzeige / Filter ) 5.3262
Total Execution Time 5.3483
GET DATA $_GET['c'] anzeige
$_GET['m'] filter
$_GET['kanr'] LKH
$_GET['kategorie'] MEDDOK
$_GET['ewh'] Warning
$_GET['status'] neu
POST DATA
No POST data exists QUERIES Database driver is not currently loaded
this is my query its a bit complicated becauce of the page pagination in mssql:
Code:
$where = '';
if($kanr!=null && $kanr!="alle")
$where .= " AND ERRORMESSAGE.KANR = '".$kanr."'";
if($abtfc!=null && $abtfc!="alle")
{
$where .= " AND ERRORMESSAGE.ABTFC IN (".implode(",",$abtfc).")";
#$kuerzel = $this->Join_Model->getKuerzelABTFC($abtfc);
#$where .= " AND STAMMDATEN.KUERZEL IN ('".implode(",",$kuerzel)."')";
}
if($status!=null && $status!="alle")
$where .= " AND EMSTATUS.STATUS = '".$status."'";
if($ewh!=null && $ewh!="alle")
$where .= " AND ERRORMESSAGE.E_W = '".$ewh."'";
if($kategorie!=null && $kategorie!="alle")
$where .= " AND EWSTAMMDATEN.KATEGORIE = '".$kategorie."'";
if($errc!=null && $kanr!="alle")
$where .= " AND ERRORMESSAGE.EWCODE = '".$errc."'";
if($wert!=null && $wert!="alle")
$where .= " AND ERRORMESSAGE.WERT = '".$wert."'";
if($bearbeitet!=null)
{
if($bearbeitet == 3)
$join = "JOIN USERS ON (USERS.USER_ID = EMSTATUS.USER_ID)";
else
$join = "JOIN USERS ON (USERS.USER_ID = EMSTATUS.ADMIN_ID)";
$where .= " AND EMSTATUS.USRKOMMENTAR IS NOT NULL";
$where .= " AND USERS.GRUPPE_ID = ".$bearbeitet."";
}
if($sort!=null)
$sort = "order by ERRORMESSAGE.".$sort." desc";
else
$sort = 'order by ERRORMESSAGE.ERR_ID desc';
if(empty($offset)) $offset = 0;
$this->db->trans_start();
$query = $this->db->query("
select TOP ".$num." * from (
SELECT ROW_NUMBER() over (".$sort.") as RowNumber,
ERRORMESSAGE.ERR_ID as ERR_ID,
ERRORMESSAGE.KANR as ERR_KANR,
ERRORMESSAGE.FILEDAT,
ERRORMESSAGE.ABTFC,
ERRORMESSAGE.ABTFC AS ERR_ABTFC,
ERRORMESSAGE.EWCODE AS ERR_EWCODE,
ERRORMESSAGE.AUFDAT,
EWSTAMMDATEN.BESCHREIBUNG,
EWSTAMMDATEN.KOMMENTAR,
ERRORMESSAGE.ENDDAT,
ERRORMESSAGE.WERT AS ERR_WERT,
ERRORMESSAGE.GEBDAT,
ERRORMESSAGE.AZ,
ERRORMESSAGE.ERR_ID as ERR_ERR_ID,
ERRORMESSAGE.WERT,
EMSTATUS.USRKOMMENTAR,
EMSTATUS.STATUS,
EMSTATUS.LAENDERUNG,
EMSTATUS.ADMIN_ID,
EMSTATUS.USER_ID,
TotalRows=Count(*) OVER()
FROM ERRORMESSAGE
JOIN EWSTAMMDATEN ON (EWSTAMMDATEN.EWCODE = ERRORMESSAGE.EWCODE)
JOIN EMSTATUS ON (EMSTATUS.ERR_ID = ERRORMESSAGE.ERR_ID)
".$join."
where ERRORMESSAGE.AKTIV = 1 and ERRORMESSAGE.ABTFC > '0' and ERRORMESSAGE.AZ > '0' ".$where."
) _tmpInlineView
where RowNumber > '".$offset."'");
$this->db->trans_complete();
#echo "test";
return $query;
}