sql排序

oracle awr报告生成和分析

旧巷老猫 提交于 2019-12-25 20:16:05
  最近由于数据库cpu占用非常高,导致VCS常常自动切换,引起很多问题。 最近学习一下数据库awr分析数据库sql执行性能的分析报告。下面将初步讲解一下: 1、先登陆数据库,生成awr报告 。 linux:~ # su - oracle oracle@linux:~> sqlplus '/as sysdba' SQL*Plus: Release 11.1.0.6.0 - Production on Sun Apr 7 14:02:38 2013 Copyright (c) 1982, 2007, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 2、输入分析命令 SQL> @?/rdbms/admin/awrrpt Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance ----------- ------------ -------- ------------

致sql初学者

房东的猫 提交于 2019-12-25 11:53:19
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 很多程序员视 SQL 为洪水猛兽。SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言)。 1、 SQL 是一种声明式语言 首先要把这个概念记在脑中:“声明”。 SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果。这是不是很棒? (译者注:简单地说,SQL 语言声明的是结果集的属性,计算机会根据 SQL 所声明的内容来从数据库中挑选出符合声明的数据,而不是像传统编程思维去指示计算机如何操作。) SELECT first_name, last_name FROM employees WHERE salary > 100000 上面的例子很容易理解,我们不关心这些雇员记录从哪里来,我们所需要的只是那些高薪者的数据(译者注: salary>100000 )。 我们从哪儿学习到这些? 如果 SQL 语言这么简单,那么是什么让人们“闻 SQL 色变”?主要的原因是:我们潜意识中的是按照命令式编程的思维方式思考问题的。就好像这样:“电脑,先执行这一步,再执行那一步,但是在那之前先检查一下是否满足条件 A 和条件 B ”。例如,用变量传参、使用循环语句、迭代

大数据集报表点击表头排序

风格不统一 提交于 2019-12-24 05:43:03
在 润乾官方在线 demo 的 "交互报表" 中,有介绍 "点击表头排序" 的报表案例,该报表针对普通统计类报表。对于使用大数据集的报表,当按照此方式改造时发现排序没起作用或仅对第一页或前几页排序,后面的都没成功。 要想了解啥原因导致?就需要分析该报表的做法及知道大数据集的取数原理。 首先,来分析下在线 demo“点击报表排序”的做法。 润乾报表中实现排序的方式有两种: 1、 借助数据集 sql,即 order by … 2、 数据集函数 如 ds.select() 都有排序表达式 sort_exp 或 order_exp. 示例中用的是第 2 中方法,因普通报表是一次性把所有数据取到内存,所以数据集函数排序是对所有数据的排序,点表头实际就是按照某字段对所有数据排了一次序,也就没啥问题了。 接下来看大数据集报表的取数原理。 简单来说,大数据集取数原理是为了避免一次取大量数据导致内存溢出,采取了游标方式边取边呈现的方案(其中取出的数据缓存在磁盘文件,前端呈现从缓存文件读取)。 了解了该方案后,我们就清楚了,采用排序的第 2 中方案,显然只能针对一部分数据排序后呈现,并不针对所有数据。 解决方案也就明确了:要想实现大数据集报表的表头排序,必须用第 1 中方法。 改造: 1、 去掉数据集函数排序 2、 把排序调到 sql 中 3、 修改超链接 因普通报表和大数据集报表用的 jsp 不同

SQL Server T-SQL高级查询

≯℡__Kan透↙ 提交于 2019-12-22 11:33:09
高级查询在数据库中用得是最频繁的,也是应用最广泛的。 Ø 基本常用查询 --select select * from student; --all 查询所有 select all sex from student; --distinct 过滤重复 select distinct sex from student; --count 统计 select count(*) from student; select count(sex) from student; select count(distinct sex) from student; --top 取前N条记录 select top 3 * from student; --alias column name 列重命名 select id as 编号, name '名称', sex 性别 from student; --alias table name 表重命名 select id, name, s.id, s.name from student s; --column 列运算 select (age + id) col from student; select s.name + '-' + c.name from classes c, student s where s.cid = c.id; --where 条件 select

Python_Django_QuerySet API

自古美人都是妖i 提交于 2019-12-21 01:23:48
QuerySet API: 我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager这个类是一个“空壳”的类,他本身是没有任何的属性和方法的。他的方法全部都是通过Python动态添加的方式,从QuerySet类中拷贝过来的。示例图如下: 所以我们如果想要学习ORM模型的查找操作,必须首先要学会QuerySet上的一些API的使用。返回新的 QuerySet的方法: 在使用QuerySet进行查找操作的时候,可以提供多种操作。比如过滤完后还要根据某个字段进行排序,那么这一系列的操作我们可以通过一个非常流畅的链式调用的方式进行。比如要从文章表中获取标题为123,并且提取后要将结果根据发布的时间进行排序,那么可以使用以下方式来完成: `articles = Article . objects . filter ( title = '123' ) . order_by ( 'create_time' ) ` 可以看到order_by方法是直接在filter执行后调用的。这说明filter返回的对象是一个拥有order_by方法的对象。而这个对象正是一个新的QuerySet对象。因此可以使用order_by方法

页面移动排序算法实现

依然范特西╮ 提交于 2019-12-19 08:53:53
页面移动排序算法实现 1.思想 我们用这5条记录来进行排序。 记录1,sort:1;记录2,sort:2;记录3,sort:3;记录4,sort:4;记录5,sort:5 页面展示: 记录5 ,记录4 ,记录3 ,记录2 ,记录1 需求1:记录3往上移动 只需要将它与记录4交换sort值 即可。 需求2:记录3往下移动 只需要将它与记录2交换sort值 即可。 需求3:记录3置顶(上移至第一条) 获取最大排序号为5, 然后加1=6, 修改记录3的sort值为6 即可。 需求4:记录3置底(下移至最后一条) 获取最小排序号为1, 然后减1=0, 修改记录3的sort值为0 即可。 1. 每当新增一条记录的时候,sort都会在前一条记录上+1 2. 查询列表 sql 根据排序字段 降序 上移:取上一条记录排序号,将当前记录与上一条记录排序号置换 下移:取下一条记录排序号,将当前记录与下一条记录排序号调换置换 置顶(上移至第一条):获取最大的记录排序号,修改当前记录的排序号为最大排序号+1 置底(下移至最后一条):获取最小的记录排序号,修改当前记录的排序号为最小排序号-1 2.实现步骤 表加字段 sort_no 用于排序 controller 新增需获取最大排序号加1 排序方法 /** * @param appId 移动的主键 * @param operateType *

SQL Server 自定义排序

早过忘川 提交于 2019-12-19 00:53:51
方法一: 比如需要对SQL表中的字段NAME进行如下的排序: 张三(Z) 李四(L) 王五(W) 赵六(Z) 按照sql中的默认排序规则,根据字母顺序(a~z)排,结果为:李四 王五 赵六 张三 自定义排序:order by charindex(NAME,‘张三,李四,王五,赵六’) CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下: CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。 CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数整数“0”。让我们看看下面的函数命令执行的结果: CHARINDEX(‘SQL’, ‘Microsoft SQL Server’) 这个函数命令将返回在“Microsoft SQL Server”中“SQL”的起始位置,在这个例子中,CHARINDEX函数将返回“S”在“Microsoft SQL Server”中的位置11。 接下来

大数据集报表点击表头排序

ぐ巨炮叔叔 提交于 2019-12-17 21:46:28
在 润乾官方在线 demo 的 "交互报表" 中,有介绍 "点击表头排序" 的报表案例,该报表针对普通统计类报表。对于使用大数据集的报表,当按照此方式改造时发现排序没起作用或仅对第一页或前几页排序,后面的都没成功。 要想了解啥原因导致?就需要分析该报表的做法及知道大数据集的取数原理。 首先,来分析下在线 demo“点击报表排序”的做法。 润乾报表中实现排序的方式有两种: 1、 借助数据集 sql,即 order by … 2、 数据集函数 如 ds.select() 都有排序表达式 sort_exp 或 order_exp. 示例中用的是第 2 中方法,因普通报表是一次性把所有数据取到内存,所以数据集函数排序是对所有数据的排序,点表头实际就是按照某字段对所有数据排了一次序,也就没啥问题了。 接下来看大数据集报表的取数原理。 简单来说,大数据集取数原理是为了避免一次取大量数据导致内存溢出,采取了游标方式边取边呈现的方案(其中取出的数据缓存在磁盘文件,前端呈现从缓存文件读取)。 了解了该方案后,我们就清楚了,采用排序的第 2 中方案,显然只能针对一部分数据排序后呈现,并不针对所有数据。 解决方案也就明确了:要想实现大数据集报表的表头排序,必须用第 1 中方法。 改造: 1、 去掉数据集函数排序 3、 修改超链接 因普通报表和大数据集报表用的 jsp 不同,所以要改一下。 以 B4 为例

大数据集报表点击表头排序

妖精的绣舞 提交于 2019-12-17 05:49:11
在 润乾官方在线 demo 的 "交互报表" 中,有介绍 "点击表头排序" 的报表案例,该报表针对普通统计类报表。对于使用大数据集的报表,当按照此方式改造时发现排序没起作用或仅对第一页或前几页排序,后面的都没成功。 要想了解啥原因导致?就需要分析该报表的做法及知道大数据集的取数原理。 首先,来分析下在线 demo“点击报表排序”的做法。 润乾报表中实现排序的方式有两种: 1、 借助数据集 sql,即 order by … 2、 数据集函数 如 ds.select() 都有排序表达式 sort_exp 或 order_exp. 示例中用的是第 2 中方法,因普通报表是一次性把所有数据取到内存,所以数据集函数排序是对所有数据的排序,点表头实际就是按照某字段对所有数据排了一次序,也就没啥问题了。 接下来看大数据集报表的取数原理。 简单来说,大数据集取数原理是为了避免一次取大量数据导致内存溢出,采取了游标方式边取边呈现的方案(其中取出的数据缓存在磁盘文件,前端呈现从缓存文件读取)。 了解了该方案后,我们就清楚了,采用排序的第 2 中方案,显然只能针对一部分数据排序后呈现,并不针对所有数据。 解决方案也就明确了:要想实现大数据集报表的表头排序,必须用第 1 中方法。 改造: 1、 去掉数据集函数排序 2、 把排序调到 sql 中 3、 修改超链接 因普通报表和大数据集报表用的 jsp 不同

SQL 按关键字排序

旧时模样 提交于 2019-12-17 04:22:08
SQL ORDER BY Keyword(按关键字排序) ORDER BY 关键字用于对结果集进行排序。 SQL ORDER BY 关键字 ORDER BY 关键字用于按升序或降序对结果集进行排序。 ORDER BY 关键字默认情况下按升序排序记录。 如果需要按降序对记录进行排序,可以使用DESC关键字。 SQL ORDER BY 语法 SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC; 演示数据库 在本教程中,我们将使用著名的Northwind示例数据库。 以下是 "Customers" 表中的数据: CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Moreno Taquería Antonio Moreno