查看django执行的sql语句及消耗时间的两种方法
下面介绍两种查看django 执行的sql语句的方法。
方法一:
queryset = Apple.objects.all() print queryset.query SELECT `id`, `name` FROM `apple`
该方法只能查看select语句,但不能查看其他更新保存的语句,会报错。
也就是说只有 Queryset 有query方法。接下来看第二种方法。
方法二:
from django.db import connection print connection.queries [{u'time': u'0.098', u'sql': u'SELECT `app_detail`.`app_id` FROM `app_detail` WHERE `app_detail`.`id` = 20 '}]
会打印所有执行过的sql语句及消耗的时间,非常有用。
如果有多个数据库,可以使用以下方法选择数据库:
from django.db import connections c = connections['Fruits'] print c.queries
选择连接'Fruits'数据库,打印相关的sql语句。
以上这篇查看django执行的sql语句及消耗时间的两种方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Django shell调试models输出的SQL语句方法
在settings.py里,配置如下logging: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True,
-
ORM Django 终端打印 SQL 语句实现解析
在 settings.py 中添加以下内容: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'le
-
Django 浅谈根据配置生成SQL语句的问题
想要根据django中的模型和配置生成SQL语句,需要先进行一定的设置: 首先需要在你的app文件夹中进入setting.py文件,里面有一个DATABASES,进行设置数据库的配置信息: DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql',
-
详解Django的model查询操作与查询性能优化
1 如何 在做ORM查询时 查看SQl的执行情况 (1) 最底层的 django.db.connection 在 django shell 中使用 python manage.py shell >>> from django.db import connection >>> Books.objects.all() >>> connection.queries ## 可以查看查询时间 [{'sql': 'SELECT "testsql_boo
-
获取django框架orm query执行的sql语句实现方法分析
本文实例讲述了获取django框架orm query执行的sql语句实现方法.分享给大家供大家参考,具体如下: 利用Django orM 可以很方便的写出很多查询,但有时候,我们需要检查这些利用 orM 生成的 SQL 语句是否正确,就需要检查这些ORM 生成的 原生的SQL 语句是否正确.经过测试有如下几种方法: 1. 通过数据库的跟踪日志,可以看到查询的语句,比如mysql 就可以配置把所有的 SQL 语句打印到日志中,但这种方式并不推荐,只是没有办法的时候才这么做. 2. 利用django
-
查看django执行的sql语句及消耗时间的两种方法
下面介绍两种查看django 执行的sql语句的方法. 方法一: queryset = Apple.objects.all() print queryset.query SELECT `id`, `name` FROM `apple` 该方法只能查看select语句,但不能查看其他更新保存的语句,会报错. 也就是说只有 Queryset 有query方法.接下来看第二种方法. 方法二: from django.db import connection print connection.queri
-
使用Django Form解决表单数据无法动态刷新的两种方法
一.无法动态更新数据的实例 1. 如下,数据库中创建了班级表和教师表,两张表的对应关系为"多对多" from django.db import models class Classes(models.Model): title = models.CharField(max_length=32) class Teacher(models.Model): name = models.CharField(max_length=32) t2c = models.ManyToManyField(
-
SQL SERVER 2008 r2 数据压缩的两种方法
在压缩数据之前建议大家看下这篇文章:http://www.jb51.net/article/136522.htm 一般情况下不建议压缩数据,如果压缩数据建议先备份 第一种方法:通过sql server management studio 首先我们要下载能操作 2008的工具 sql server management studio 这个工具在sql server 2008 r2 安装后就会有! 一起安装妥当,我们就可以开始选择了看图! 所有的都是单击右键,凡在你需要压缩的表上面,依次选择到数据库
-
SQL SERVER 2008 r2 数据压缩的两种方法第1/2页
有时候sql server 2008 数据库日志文件太大,需要收缩释放硬盘内存.如果ldb文件过大会导致数据库运行缓慢,甚至系统都会卡住. 1.登陆项目平台数据库服务器.双击SQL Server Management Studio打开数据库管理.登陆数据库 2.如下图,打开数据库属性窗口 3.如下图,更改数据库恢复模式 4.如下图,收缩数据库日志 到这里已经完成了,数据库的日志收缩 5.如下图,数据库恢复模式修改为完整 经过我们小编测试,完美解决,我们成功的把一个84G的文件,压缩到1M. 下面
-
sql动态行转列的两种方法
第一种方法: 复制代码 代码如下: select *from ( select Url,case when Month=01 then '1月' when Month=02 then '2月' when Month=03 then '3月' when Month=04 then '4月' when Month=05 then '5月' when Month=06 then '6月' when Month=07 then '7月' when Month=08 then '
-
如何查看Django ORM执行的SQL语句的实现
Django ORM对数据库操作的封装相当完善,日常大部分数据库操作都可以通过ORM实现.但django将查询过程隐藏在了后台,这在开发时可能会略显晦涩,并且使用方式不当还会造成开销过大. 那么如何查看django何时执行了什么sql语句呢?答案是使用Logging. 先直接上方法,在settings.py中加入LOGGING选项,调整logging等级为DEBUG即可: LOGGING = { 'version': 1, 'disable_existing_loggers': False, '
-
Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)
在使用mysql运行某些语句时,会因数据量太大而导致死锁,没有反映.这个时候,就需要kill掉某个正在消耗资源的query语句即可, KILL命令的语法格式如下: KILL [CONNECTION | QUERY] thread_id 每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程. KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不
-
thinkPHP框架中执行原生SQL语句的方法
本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql); 只是需要new一个空的模型继承Model中的方法. 注意query是查功能,execute是增删改
-
Laravel框架执行原生SQL语句及使用paginate分页的方法
本文实例讲述了Laravel框架执行原生SQL语句及使用paginate分页的方法.分享给大家供大家参考,具体如下: 1.运行原生sql public function getList($data){ //获取前端传过来的参数 $user = $data['userId']; $office = $data['officeId']; $key = $data['oneKeySearch']; //进行模糊搜索和联合查询 $where = 'and 1=1 '; if($key!=null) {
随机推荐
- Http与https对比详细介绍
- BAT版文件粉碎器
- 解决extjs grid 不随窗口大小自适应的改变问题
- 详解angularJS动态生成的页面中ng-click无效解决办法
- asp,asp.net,php,jsp下的301转向代码
- 服务器常用批处理代码 原创
- IOS 字符串常用处理详细介绍
- Python实现的数据结构与算法之队列详解
- 快速学习jQuery插件 Form表单插件使用方法
- php中获得视频时间总长度的另一种方法
- python中input()与raw_input()的区别分析
- 21个值得收藏的Javascript技巧
- 把Windows XP装在口袋里?
- windows+apache+mod_python配置django运行环境
- Android开发中判断手机是否安装了QQ或者微信
- java 反射机制
- 利用Python演示数型数据结构的教程
- JavaScript 无符号右移赋值操作
- php中使用Akismet防止垃圾评论的代码
- 利用PHP访问数据库_实现分页功能与多条件查询功能的示例