Sql server cakePHP和sql视图-分页需要很长时间才能加载?
我目前正在从事一个cakePHP项目。我被卡住了 我创建了一个使用MSSQL视图作为表的模型:Sql server cakePHP和sql视图-分页需要很长时间才能加载?,sql-server,cakephp,optimization,sql-view,Sql Server,Cakephp,Optimization,Sql View,我目前正在从事一个cakePHP项目。我被卡住了 我创建了一个使用MSSQL视图作为表的模型: <?php class OrderList extends AppModel{ public $useTable = 'vOrderList'; public $primaryKey = 'OrderNumber'; public $order = array( "OrderList.OrderNumber"=>
<?php
class OrderList extends AppModel{
public $useTable = 'vOrderList';
public $primaryKey = 'OrderNumber';
public $order = array(
"OrderList.OrderNumber"=>"desc"
);
}
但是,查询时间太长了
加载页面需要8秒钟!
但是,如果我直接在mssql中打开视图表,加载只需要几毫秒
我不明白为什么
当我加载除我创建的视图之外的任何其他模型时,它工作得非常完美。它与我创建的自定义视图表不兼容
如果有人知道的话,我需要你的帮助
提前谢谢 好吧,我知道了。它在计算vOrderList中的条目数,这占用了大部分时间。我更改了订单列表模型,改为计算实际订单表
/**
* Overridden paginate method
*/
public function paginate($conditions, $fields, $order, $limit, $page = 1,
$recursive = null, $extra = array()) {
$recursive = -1;
return $this->find(
'all',
compact('conditions', 'fields', 'order', 'limit', 'page', 'recursive', 'group')
);
}
/**
* Overridden paginateCount method
*/
public function paginateCount($conditions = null, $recursive = 0,
$extra = array()) {
$sql =
"
SELECT COUNT(*) AS [count] FROM [CustomerOrder] AS [Order] WHERE 1 = 1
";
$this->recursive = $recursive;
$results = $this->query($sql);
return count($results);
}
/**
* Overridden paginate method
*/
public function paginate($conditions, $fields, $order, $limit, $page = 1,
$recursive = null, $extra = array()) {
$recursive = -1;
return $this->find(
'all',
compact('conditions', 'fields', 'order', 'limit', 'page', 'recursive', 'group')
);
}
/**
* Overridden paginateCount method
*/
public function paginateCount($conditions = null, $recursive = 0,
$extra = array()) {
$sql =
"
SELECT COUNT(*) AS [count] FROM [CustomerOrder] AS [Order] WHERE 1 = 1
";
$this->recursive = $recursive;
$results = $this->query($sql);
return count($results);
}