yii 输出当前的sql语句

<?php

namespace app\controllers;

use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;

class CountryController extends Controller{

    public function actionIndex(){
        $query = Country::find();

        $pagination = new Pagination([
            ‘defaultPageSize‘ => 7,
            ‘totalCount‘ => $query->count(),
        ]);
        $countries = $query->orderBy(‘name‘)
            ->offset($pagination->offset)
            ->limit($pagination->limit)
            ->all();
        $commandQuery = clone $query;
        echo $commandQuery->createCommand()->getRawSql();//SELECT * FROM `country` ORDER BY `name` LIMIT 7
        return $this->render(‘index‘, [
            ‘countries‘ => $countries,
            ‘pagination‘ => $pagination,
        ]);
    }
}
时间: 2024-08-07 16:59:08

yii 输出当前的sql语句的相关文章

java mybatis学习之$和#区别,mapper代理接口,动态SQL,在日志中输出mybatis的sql语句

1.在mybatis中,$和#的区别: #{}:表示一个预处理参数,参数类型不定,是根据传入的参数类型来设定的.类似于JDBC中的? 特例使用,模糊查询:(针对oracle): and username like concat(concat('%',#{username}),'%') ${}:相当于是我们的JDBC里的字符串拼接.这里就相当于传入的就是一个字符串(不管传入什么样的数据类型,都是字符串) and username like '%${value}%' 2.$和#在mybatis中的优

SQL SERVER 存储过程执行带输出参数的SQL语句拼接

注意:定义的要执行的SQL语句必须是nvarchar类型 CREATE PROC P_BranchOrderSalesStatistics @beginTime DateTime, --开始时间 @endTime DateTime, --结束时间 @branchCode varchar(20), --门店编码 @NewMemberCount int out, -- 新会员数量 @OrderCount int out, --订单数量 @SalesTotalPrice decimal(18,2) o

非常简单,让log4j输出mybatis的sql语句和执行结果

#需要slf4j-api-.jar slf4j-log4j12.-1.6.1.jar log4j.properties中#log4j.logger.EntryTableDao=TRACE 或#log4j.logger.包=DEBUG 并在输出级别配置 ## 设置Logger输出级别和输出目的地 ###log4j.rootLogger=INFO,stdout# MyBatis logging configuration...  log4j.logger.EntryTableDao=TRACE##

转:sql语句优化

性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设法对之进行简化. 常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果.3)少用子查询4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜. 连接的表越多,其编译的时间和连接的开销也越大,性能越不好控制. 最好是把连接拆开成较小的几个部分逐个顺序执行.

SQL语句优化原则

性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设法对之进行简化. 常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果.3)少用子查询4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜. 连接的表越多,其编译的时间和连接的开销也越大,性能越不好控制. 最好是把连接拆开成较小的几个部分逐个顺序执行.

Mybatis3中用log4j跟踪SQL语句

在开发过程中,打印SQL语句应该是一个非常有用的功能. 下面介绍如何在Mybatis3中开启打印SQL语句的功能. Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式: SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging 具体选择哪个日志实现由MyBatis的内置日志工厂确定.它会使用最先找到的(按上文列举的顺序查找). 如果一个都未找到,日志功能就会被禁用 另外Mybatis官网上说Many environments

使用过得sql语句展示--会不断更新完善

这篇博文主要是对我自己用过的sql语句进行展示,然后不断完善,形成自己写sql语句的风格,并提高自己sql语句的运行速度.之前自己对左连接等一系列的sql语句都不是很熟悉,经过这几天的学习和项目中实际需求的使用,学会了一些sql语句.现在将我写的sql语句展示出来.主要分为两类,一类是通过yii框架里的sql语句写法,一类是正常的sql语句. 先说正常的sql语句吧. 1.首先是多表查询,先涉及到的是join方法,下面这条连接,有几个点需要注意,一个是group by的使用,group by的话

[转]sql语句优化原则

性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设法对之进行简化. 常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果.3)少用子查询4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜.  连接的表越多,其编译的时间和连接的开销也越大,性能越不好控制. 最好是把连接拆开成较小的几个部分逐个顺序执行

应用索引技术优化SQL 语句一

一.前言 很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句.这类SQL语句性能不好的首要原因是缺乏高效的索引.没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作,使得整个系统性能都受之影响而变差.解决这类系统的首要办法是优化这些没有索引或索引不够好的SQL语句. 本文讨论和索引相关的有关内容,以及通过分析语句的执行计划来讲述如何应用索引技术来优化SQL 语句.通过分析执行计划,读者可以检查索引是否有用,以及如何创建高效的索引.本文对数据库管理人员以