一个性能问题的分析思路,转载一篇老白以前的文章
这个小案例其实很简单,可能很多人都会找到解决问题的方案。不过分析问题思路很重要,可能很多人就算解决了问题,也搞不清楚是怎么分析出来的,下回碰到类似问题还会迷惑半天。
在一张上千万记录的大表里,做一个SELECT * FROM WHERE ROWNUM<100,居然十多秒钟才出来。我问他这张表是不是碎片很厉害,他所不可能有碎片,昨天才IMP进去的,昨天还没问题,今天就出问题了。而且这张是话单表,不可能会做删除操作的,不会有碎片。
我让他马上做个10046发过来。10分钟后,他通过QQ把TRACE发过来了:
SELECT *
FROM
ttt where rownum<100
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.14 0.17 44 198 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 8 3.71 5.86 67489 68340 0 99
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 10 3.85 6.03 67533 68538 0 99
从这上面看,确实产生了67533个物理读和68538个逻辑读。执行时间为6.03秒。从等待事件来看:
BINDS #39:
EXEC #39:c=0,e=88,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=1422207486718
WAIT #39: nam='SQL*Net message to client' ela= 7 driver id=1650815232 #bytes=1 p3=0 obj#=206418 tim=1422207486810
WAIT #39: nam='SQL*Net more data to client' ela= 203 driver id=1650815232 #bytes=2002 p3=0 obj#=206418 tim=1422207487071
WAIT #39: nam='SQL*Net more data to client' ela= 66 driver id=1650815232 #bytes=2020 p3=0 obj#=206418 tim=1422207487175
WAIT #39: nam='db file scattered read' ela= 515 file#=146 block#=92900 blocks=5 obj#=206418 tim=1422207488208
WAIT #39: nam='db file scattered read' ela= 918 file#=146 block#=92905 blocks=8 obj#=206418 tim=1422207489579
WAIT #39: nam='db file scattered read' ela= 2121 file#=146 block#=92914 blocks=7 obj#=206418 tim=1422207492091
WAIT #39: nam='db file scattered read' ela= 617 file#=146 block#=92921 blocks=8 obj#=206418 tim=1422207493135
WAIT #39: nam='db file scattered read' ela= 493 file#=146 block#=92930 blocks=7 obj#=206418 tim=1422207494016
WAIT #39: nam='db file scattered read' ela= 1666 file#=147 block#=897417 blocks=8 obj#=206418 tim=1422207496049
WAIT #39: nam='db file scattered read' ela= 1026 file#=147 block#=897426 blocks=7 obj#=206418 tim=1422207497350
WAIT #39: nam='db file scattered read' ela= 378 file#=147 block#=897433 blocks=8 obj#=206418 tim=1422207498049
WAIT #39: nam='db file scattered read' ela= 1075 file#=147 block#=897442 blocks=7 obj#=206418 tim=1422207499416
WAIT #39: nam='db file scattered read' ela= 1649 file#=147 block#=897449 blocks=3 obj#=206418 tim=1422207501237
WAIT #39: nam='db file scattered read' ela= 2768 file#=147 block#=897453 blocks=4 obj#=206418 tim=1422207504191
WAIT #39: nam='db file scattered read' ela= 653 file#=147 block#=897458 blocks=7 obj#=206418 tim=1422207505141
WAIT #39: nam='db file scattered read' ela= 1588 file#=147 block#=897465 blocks=8 obj#=206418 tim=1422207507029
WAIT #39: nam='db file scattered read' ela= 460 file#=147 block#=897474 blocks=7 obj#=206418 tim=1422207507787
WAIT #39: nam='db file scattered read' ela= 608 file#=147 block#=897481 blocks=8 obj#=206418 tim=1422207508697
WAIT #39: nam='db file scattered read' ela= 564 file#=147 block#=897490 blocks=7 obj#=206418 tim=1422207509571
WAIT #39: nam='db file scattered read' ela= 832 file#=147 block#=897497 blocks=8 obj#=206418 tim=1422207510668
WAIT #39: nam='db file scattered read' ela= 846 file#=148 block#=102411 blocks=16 obj#=206418 tim=1422207512030
WAIT #39: nam='db file scattered read' ela= 4872 file#=148 block#=102427 blocks=16 obj#=206418 tim=1422207517488
WAIT #39: nam='db file scattered read' ela= 1624 file#=148 block#=102443 blocks=16 obj#=206418 tim=1422207520062
确实存在大量的DB FILE SCATTERD READ。这更加坚信了我的观点,表里存在大量的碎片。找第一个SCATTERD READ的参数 file#=146 block#=92900,让客户执行alter system dump datafile 146 block min 92900 block max 92904。获得的结果如下:
data_block_dump,data header at 0x6000000000208e64
===============
tsiz: 0x1f98
hsiz: 0x4c
pbl: 0x6000000000208e64
bdba: 0x24816ae4
76543210
flag=--------
ntab=1
nrow=29
frre=0
fsbo=0x4c
fseo=0xf7
avsp=0x1f4c
tosp=0x1f4c
0xe:pti[0] nrow=29 offs=0
0x12:pri[0] sfll=1
0x14:pri[1] sfll=2
0x16:pri[2] sfll=3
0x18:pri[3] sfll=4
0x1a:pri[4] sfll=5
0x1c:pri[5] sfll=6
0x1e:pri[6] sfll=7
0x20:pri[7] sfll=8
0x22:pri[8] sfll=9
0x24:pri[9] sfll=10
0x26:pri[10] sfll=11
0x28:pri[11] sfll=12
0x2a:pri[12] sfll=13
0x2c:pri[13] sfll=14
0x2e:pri[14] sfll=15
0x30:pri[15] sfll=16
0x32:pri[16] sfll=17
0x34:pri[17] sfll=18
0x36:pri[18] sfll=19
0x38:pri[19] sfll=20
0x3a:pri[20] sfll=21
0x3c:pri[21] sfll=22
0x3e:pri[22] sfll=23
0x40:pri[23] sfll=24
0x42:pri[24] sfll=25
0x44:pri[25] sfll=26
0x46:pri[26] sfll=27
0x48:pri[27] sfll=28
0x4a:pri[28] sfll=-1
block_row_dump:
end_of_block_dump
里面全部是空块。建议客户做一个ALTER TABLE MOVE;表重组后,发现原来12G的表只剩下800M了。再执行这个SQL,只有12个BUFFER GET了:
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
12 consistent gets
1 physical reads
0 redo size
18921 bytes sent via SQL*Net to client
558 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
99 rows processed
对于这个案例的分析,要基于几点:
1、首先客户说的情况并不符合实际情况,这张表肯定在导入后做过操作,否则不可能存在这么多的碎片。因为IMP导入,从根本上来说还是组成INSERT语句来实现的
2、了解ROWNUM<100这种操作的原理,这种SQL,由于没有其他的WHERE条件,肯定会全表扫描,但是如果存在ROWNUM<100这样的条件存在,当找到足够的记录后就会终止
3、一个数据块中一般可以存放几十条-几百条数据,根据表结构不同而不同。所以100条记录,不应该产生这么多BUFFER GET,因为SQL *PLUS的缺省ARRAY SIZE是5,因此如果所有的数据块都是饱满的,大概需要20个左右的BUFFER GET就能够获取到所需要的数据了
如果没有这些理论基础,那么只能一点一点的去试,最终找到解决问题的方法,这种方法,虽然也很有效,但是碰到些更复杂的问题,解决率就很低了。因此学会分析问题的方法尤为重要。
你可能感兴趣的:(Oracle,日记)
Tomcat:Java Web应用的幕后英雄
互联网动态分析
tomcat
在当今数字化浪潮中,Java作为一门成熟且广泛应用的编程语言,支撑着无数企业级应用和互联网服务的稳定运行。而在JavaWeb开发领域,Tomcat无疑是一个举足轻重的存在,它宛如一位默默耕耘的幕后英雄,为众多Web应用提供了可靠的运行环境。Tomcat的起源与发展Tomcat的故事始于1999年,当时SunMicrosystems(后被Oracle收购)与Apache软件基金会合作,旨在为Java
游戏开发日记
future1412
学习 数据结构 c#
如何用数据表来储存,位置坐标(XYZ):决定了对象在世界中的摆放资源ID/图片URL:决定了使用什么模型或贴图事件ID/特效:是否触发某些事件(例如点击、交互)逻辑索引(GridIndex):用于程序检索和映射用途这在策略类、模拟类、RPG游戏中非常常见,例如建筑布局、怪物摆放、地图资源点等。这个表格决定的是玩家事件,使用了的图片名称URL,格子的出入口设置,格子的类型,是否为检察点,场景id,副
C#学习日记
future1412
学习
一、基础概念回顾:值类型变量直接包含值本身,通常分配在栈(Stack)内存中。基本数据类型:int,float,char,bool,enum自定义结构体struct引用类型(ReferenceType)引用类型变量包含的是指向实际对象的引用地址,实际数据位于堆(Heap)内存中。string(虽然看起来像值,但本质是引用类型)数组、类class接口interface、委托delegate结构体(s
《Python星球日记》第35天:全栈开发(综合项目)
Code_流苏
Python星球日记 编程项目实战 Python全栈开发 Django Flask 后端开发 博客系统
名人说:路漫漫其修远兮,吾将上下而求索。——屈原《离骚》创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)专栏:《Python星球日记》,限时特价订阅中ing目录一、全栈开发概述1.全栈开发的优势2.全栈开发技能组合二、博客系统项目需求分析1.功能需求2.技术栈选择3.项目结构规划三、数据库设计1.实体关系分析2.Django模型设计四、后端开发1.Django项目创建2.视图
学习日记-spring-day45-7.10
永日45670
学习 spring java
知识点:1.初始化Bean单例池完成getBeancreateBean(1)知识点核心内容重点单例词初始化在容器初始化阶段预先创建单例对象,避免在getBean时动态创建单例词必须在容器初始化时完成加载,否则会触发异常getBean方法逻辑1.从beanDefinitionMap查询BeanDefinition2.根据scope判断单例/多例3.单例:直接从单例词获取4.多例:反射动态创建新对象多
ETL可视化工具 DataX -- 简介( 一)
dazhong2012
软件工具 数据仓库 datax ETL
引言DataX系列文章:ETL可视化工具DataX–安装部署(二)ETL可视化工具DataX–DataX-Web安装(三)1.1DataX1.1.1DataX概览DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、
个人日记本小程序开发方案(使用IntelliJ IDEA)
HH予
嵌入式驱动工程项目开发 intellij-idea java ide
个人日记本小程序开发方案(使用IntelliJIDEA)一、项目创建与环境配置1.新建项目打开IDEA→NewProject→JavaFX选择JDK11+版本添加必要依赖:<groupId
上位机知识篇---文件系统
Atticus-Orion
上位机知识篇 文件系统 windows linux FAT NTFS ext4 ZFS
文章目录前言1.FAT(FileAllocationTable)版本FAT12FAT16FAT32优势兼容性好简单轻量适合小文件存储劣势不支持大文件性能较差缺乏高级功能使用场景2.NTFS(NewTechnologyFileSystem)优势支持大文件和大分区高性能日记功能权限控制劣势兼容性差不适合嵌入式设备使用场景3.exFAT(ExtendedFileAllocationTable)优势支持大
项目开发日记
框架整理学习UIMgr:一、数据结构与算法1.1关键数据结构成员变量类型说明m_CtrlsList当前正在显示的所有UI页面m_CachesList已打开过、但现在不显示的页面(缓存池)1.2算法逻辑查找缓存页面:从m_Caches中倒序查找是否已有对应ePageType页面,找到则重用。页面加载:从资源管理器ResMgr加载prefab并绑定控制器/视图组件。页面关闭:从m_Ctrls移除,添加
跨服务sqlplus连接oracle数据库
胡斌附体
数据库 oracle 19c 11g sqlplus 问题排查 远端连接
背景:ogg程序同步数据。目标库:客户oracle数据库11.0.2.4.0,也就是11g的数据库。源库:业务组搭建的19c数据库,刚安装的oracle数据库。ogg在源库和目标库系统都部署好了并且也可以通信。在目标库系统使用sqlplus测试连接源库的数据库ogg用户。问题。连接出现问题。目前问题得到了解决。是因为访问不能够使用实例名去连接。而需要通过服务名连接。像下面这样是正确的。sqlplu
解决SQL Server SQL语句性能问题(9)——SQL语句改写(7)
lhdz_bj
SQL Server SQL性能优化 SQL Server 性能 优化 改写 join 集合
9.4.15.消除join场景一与Oracle等其他关系库类似,SQLServer中,join作为基本语法用于SQL语句中相关表之间的连接,有些场景中,join既可以增强SQL语句的可读性,同时,又可以提升SQL语句的性能,但有些场景中,join会导致CBO为SQL语句产生次优的查询计划,进而出现SQL语句性能方面的问题。所以,有时为了解决SQL语句的性能问题,我们需要改写SQL语句,那就是利用e
sqlplus表结构查询
胡斌附体
oracle 数据库 字符集 建表语句查询 格式输出
背景。需要知道目标表名。所属用户。目标库和源库同属一类数据库,oracle。使用的数据融合系统,在ogg加持下还需要手动在目标库创建表结构登录目标库sqlplus,使用sqlplus/assysdba查询建表语句执行以下语句进行查询--设置输出格式(在SQL*Plus中执行)SETLONG1000000--确保完整显示长文本SETPAGESIZE0--禁用分页SETLINESIZE200--调整行
SQL注入与防御-第六章-3:利用操作系统--巩固访问
一、核心逻辑与价值“巩固访问”是SQL注入攻击的持久化控制阶段,通过篡改数据库权限、植入隐蔽后门(如“数据库rootkit”)、利用系统组件(如SQLServerSOAP端点),实现对数据库及关联服务器的长期控制,绕过常规防御检测,扩大攻击影响。二、技术实现与典型场景(一)数据库Rootkit植入(以Oracle为例)1.原理通过篡改数据库元数据、系统视图,隐藏恶意用户、权限或操作,类似操作系统R
oracle+循环插入sql,SQL server,Oracle循环插入百万数据
伍亦勤
oracle+循环插入sql
SQLserver,Oracle循环插入百万数据SQLserver,Oracle循环插入百万数据压测时常需要往数据库插入大量数据,下面是我往两个数据库插入数据时用的脚本declare@maxSumint,@lidnvarchar(64),--'lid'为表id@cidint,@useridnvarchar(64),@oper_timenvarchar(26),@oper_typenvarchar(
Oracle数据库不同场景批量插入数据的方式汇总
Favor_Yang
SQL调优及高级SQL语法编写 oracle 数据库
批量数据插入是数据库操作中的常见需求,Oracle数据库提供了多种高效的数据批量加载方法。不同方法适用于不同场景,从少量数据到海量数据迁移均可找到合适的解决方案。传统单条INSERT语句最基本的插入方式是通过单条INSERT语句逐行插入数据。这种方法语法简单直观,适用于少量数据插入场景。然而当数据量较大时,频繁的SQL解析和网络往返会显著降低性能。示例代码:INSERTINTOemployees(
Oracle EMCC 13.5 集群安装部署指南
Lucifer三思而后行
DBA 实战系列 oracle 数据库
大家好,这里是DBA学习之路,专注于提升数据库运维效率。目录前言第一阶段:OMR集群部署1.1OracleRAC环境准备1.2数据库版本验证1.3EMCC专用数据库优化第二阶段:ACFS集群文件系统构建2.1存储层配置配置multipath多路径配置UDEV设备绑定2.2ACFS文件系统创建使用ASMCA创建磁盘组创建ACFSVolume挂载点准备和文件系统创建第三阶段:OMS集群部署3.1环境准
Navicat数据库管理工具安装与应用教程
Matthew Um
本文还有配套的精品资源,点击获取简介:Navicat是一款支持多种数据库系统的管理工具,具备统一工作环境、优化的数据库连接和操作界面,极大地提高了数据库管理员和开发者的效率。该软件支持MySQL、Oracle等多种数据库类型,并为这些数据库提供了一系列管理与开发功能,如数据同步、性能分析、SQL查询等。用户可以下载Navicat的安装包,通过简单的安装过程后,即可使用其丰富的功能来高效管理数据库。
统信UOS安装Oracle 11g的客户端
u011189649
oracle 数据库
统信UOS安装Oracle11g的客户端一个积分的下载地址https://download.csdn.net/download/u011189649/89791511解压客户端压缩文件到/db/#首先执行xhost+xhost+#上传linux.x64_11gR2_client.zip文件至/db/目录;#如果上传不了就在局域网搭个http服务,然后用wget下载#wgethttp://ip/li
Oracle 数据库中将某个字段的值根据逗号(,)分隔符拆分成多行显示
洁辉
数据库 oracle
要在Oracle数据库中将某个字段的值根据逗号(,)分隔符拆分成多行显示,可以使用递归查询或者一些字符串处理函数结合CONNECTBY子句来实现。下面是两种方法的具体实现步骤:方法一:使用CONNECTBY和REGEXP_SUBSTR这种方法适用于Oracle11g及以上版本,利用了Oracle的层次查询功能。假设有一个表my_table,其中包含一个字段my_column,该字段存储了逗号分隔的
无需插件就能实现异构数据库的互联互通?(powershell妙用)
潇湘秦
数据库 powershell oracle mysql postgresql
欢迎关注作者,更多数据库相关安装配置,troubleshooting,调优,备份恢复等资源墨天伦:潇湘秦的个人主页-墨天轮CSDN:潇湘秦-CSDN博客公众号:潇湘秦---------------------------------------------------------------------------------------------前两天在DBA群里有大佬分享了利用OracleD
将oracle表字段json字符串分解提取并返回单列表
skillfulit
oracle json 数据库
将oracle表字段json字符串分解提取并返回单列表oracle版本11gR2(11.2.0.4.0)原始表字段内容{"FRAME_INFO":["0,0,-1,1800,1800,5992,191,20","1,0,-1,2000,1800,5992,188,20","2,0,-1,1800,1800,5992,182,20","3,0,-1,1800,1800,5992,177,20","4
oracle11G 监听服务正常,但连接数据库提示ORA-12541:无监听程序
最近使用Oracle11g数据库出现了一下比较郁闷的问题,在本地使用SQLPlus连接数据库没有任何问题,远程使用NavicatPremium无法连接,提示ORA-12541:无监听程序。本地使用SQLdevelop连接时也出现了连接失败的问题;关于这个连接异常找了很多资料,大致分为以下几种情况:1、查看监听器服务有没有正常运行,如果没有运行重新启动监听服务;2、host配置问题:oracle的l
Oracle 11g的踩坑日记
纵配天
oracle 数据库 mysql
Oracle11g相对来说卸载起来比19好卸载多了。来自一个直接莽着下完19再下11g的憨憨怨念。单单就sql语句来说,感觉和mysql差别不是很大。然后是踩坑比较多的dblink,首先是要确保自己登录的账户有创建dblink的权限,publicdatabaselink的创建需要sys的授权。创建好的非public修饰的dblink只能由创建用户使用,可以先对自己当前的数据库进行查询dblink,
oracle 数据库迁移expdp,impdp(数据泵导出导入)方法
小张是铁粉
oracle 数据库
一.优缺点优点:1.高效性能:expdp,impdp使用并行技术,可以显著提高导出导入速度,尤其适用于大数据量的迁移。支持压缩和加密,减少导出文件的大小并提高安全性。2.灵活的对象选择:可以导出整个数据库、特定表空间、用户(Schema)或单个表。支持过滤条件,例如只导出特定表的数据或元数据。3.跨平台兼容性:支持跨平台迁移(例如从Linux到Windows),但需要注意字节序(endiannes
Oracle 数据库管理与维护实战指南(用户权限、备份恢复、性能调优)
白仑色
Oracle系列 数据库 oracle 数据库管理 性能调优 备份恢复
关键词:Oracle用户权限管理、冷热备份、RMAN备份、AWR报告、SQL调优、等待事件分析✅摘要在企业级Oracle数据库运维中,用户权限管理、数据备份恢复机制、性能监控与调优是保障系统安全、稳定和高效运行的三大核心任务。本文将围绕以下内容进行详细讲解:用户与权限管理:创建用户、角色、授权与回收权限备份与恢复策略:物理备份(冷/热)、逻辑备份(EXP/IMP)、RMAN工具使用性能监控与调优:
Oracle 存储过程、函数与触发器
白仑色
Oracle系列 oracle 数据库 PLSQL编程 数据库开发 存储过程
关键词:Oracle存储过程、函数、触发器、包、PL/SQL编程✅摘要在企业级Oracle数据库开发中,存储过程(Procedure)、函数(Function)和触发器(Trigger)是构建复杂业务逻辑、提高系统性能、实现数据一致性的核心组件。本文将围绕Oracle中的PL/SQL程序结构展开讲解:创建与调用存储过程(支持IN/OUT参数)创建与使用函数(RETURN返回值)使用DBMS_OUT
使用Ora2Pg迁移Oracle数据到openGauss
hid_clf-2oizpt7skaq
oracle 数据库
下载及安装Ora2Pg1.下载说明PerlDBD:SearchtheCPAN-metacpan.org#只需在搜索输入框中输入模块的全名(例如:DBD::Oracle、DBD::Pg)Ora2Pg:Ora2Pg:MigratesOracletoPostgreSQL在Windows下,应该安装StrawberryPerl(StrawberryPerlforWindows)和操作系统对应的Oracle
如何使用Ora2Pg迁移Oracle数据库到openGauss
openGauss小助手
openGauss技术分享 数据库 oracle postgresql
Ora2Pg介绍Ora2Pg是一个将Oracle迁移至PostgreSQL的开源工具,通过连接Oracle数据库,自动扫描并提取其中的对象结构及数据,产生SQL脚本,通过手动或自动的方式将其应用到PostgreSQL。官方网站:https://ora2pg.darold.net/Ora2Pg优秀特性支持导出数据库绝大多数对象类型,包括表、视图、序列、索引、外键、约束、函数、存储过程等。提供PL/S
oracle pg 文件级迁移,从Oracle迁移到AntDB(二)-- ora2pg-对象和数据的导出导入
使用Ora2pg和psqlcopy方式进行数据迁移author:yafeishitags:AntDB,ora2pg,oracleAntDB:github_url,基于postgresql的高性能分布式数据库使用Ora2pg和psqlcopy方式进行数据迁移准备工作使用本文档的前提本文档指导如何使用ora2pg进行oracle到ADB的数据迁移,但是在参照本文档操作之前,有以下条件必须满足:-ADB
PostgreSQL 16 Administration Cookbook 读书笔记:第1章 First Steps
本章为PostgreSQL简介及如何用psql和pgAdminGUI连接PostgreSQL。1.PostgreSQL16简介开源,低TCO,30多年持续开发,符合SQL:2023标准,高度可扩展,多模。1.1PostgreSQL有何不同?PostgreSQL的功能集与Oracle或SQLServer的相似度比与MySQL更高。PostgreSQL知名用户包括苹果、巴斯夫、基因泰克、Heroku、
ASM系列六 利用TreeApi 添加和移除类成员
lijingyao8206
jvm 动态代理 ASM 字节码技术 TreeAPI
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/
Springmvc-权限设计
bee1314
spring Web jsp
万丈高楼平地起。
权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。
目标:
1.实现权限的管理(CRUD)
2.实现部门管理 (CRUD)
3.实现人员的管理 (CRUD)
4.实现部门和权限
算法竞赛入门经典(第二版)第2章习题
CrazyMizzz
c 算法
2.4.1 输出技巧
#include <stdio.h>
int
main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
printf("%d\n", i);
return 0;
}
习题2-2 水仙花数(daffodil
struts2中jsp自动跳转到Action
麦田的设计者
jsp webxml struts2 自动跳转
1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)
2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j
php 操作webservice实例
IT独行者
PHP webservice
首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端 serve
Windows下使用Vagrant安装linux系统
_wy_
windows vagrant
准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/
更改linux的文件拥有者及用户组(chown和chgrp)
无量
c linux chgrp chown
本文(转)
http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/
http://ydlmlh.iteye.com/blog/1435157
一、基本使用:
使用chown命令可以修改文件或目录所属的用户:
命令
linux下抓包工具
矮蛋蛋
linux
原文地址:
http://blog.chinaunix.net/uid-23670869-id-2610683.html
tcpdump -nn -vv -X udp port 8888
上面命令是抓取udp包、端口为8888
netstat -tln 命令是用来查看linux的端口使用情况
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
l
我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”
alafqq
mybatis
最近看了
每一个用mybatis的男纸,你伤不起
原文地址 :http://www.iteye.com/topic/1073938
发表一下个人看法。欢迎大神拍砖;
个人一直使用的是Ibatis框架,公司对其进行过小小的改良;
最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究;
发现多了一个mapper层;个人感觉就是个dao;
解决java数据交换之谜
百合不是茶
数据交换
交换两个数字的方法有以下三种 ,其中第一种最常用
/*
输出最小的一个数
*/
public class jiaohuan1 {
public static void main(String[] args) {
int a =4;
int b = 3;
if(a<b){
// 第一种交换方式
int tmep =
渐变显示
bijian1013
JavaScript
<style type="text/css">
#wxf {
FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98);
height: 25px;
}
</style>
探索JUnit4扩展:断言语法assertThat
bijian1013
java 单元测试 assertThat
一.概述
JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够
【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}
bit1129
gson
如何把如下简单的JSON字符串反序列化为Java的POJO对象?
{"data":{"IM":["MSN","QQ","Gtalk"]}}
下面的POJO类Model无法完成正确的解析:
import com.google.gson.Gson;
【Kafka九】Kafka High Level API vs. Low Level API
bit1129
kafka
1. Kafka提供了两种Consumer API
High Level Consumer API
Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂)
在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题
在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
java-归并排序
bylijinnan
java
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] a={20,1,3,8,5,9,4,25};
mergeSort(a,0,a.length-1);
System.out.println(Arrays.to
Netty源码学习-CompositeChannelBuffer
bylijinnan
java netty
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”
查看API(
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description)
可以看到,所谓“Transparent Zero Copy”是通
Android中给Activity添加返回键
hotsunshine
Activity
// this need android:minSdkVersion="11"
getActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
静态页面传参
ctrain
静态
$(document).ready(function () {
var request = {
QueryString :
function (val) {
var uri = window.location.search;
var re = new RegExp("" + val + "=([^&?]*)", &
Windows中查找某个目录下的所有文件中包含某个字符串的命令
daizj
windows 查找某个目录下的所有文件 包含某个字符串
findstr可以完成这个工作。
[html]
view plain
copy
>findstr /s /i "string" *.*
上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu
改善程序代码质量的一些技巧
dcj3sjt126com
编程 PHP 重构
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧: 尽量保持方法简短 尽管很多人都遵
SharedPreferences对数据的存储
dcj3sjt126com
SharedPreferences简介: &nbs
linux复习笔记之bash shell (2) bash基础
eksliang
bash bash shell
转载请出自出处:
http://eksliang.iteye.com/blog/2104329
1.影响显示结果的语系变量(locale)
1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下:
[root@localhost shell]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
Android零碎知识总结
gqdy365
android
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。
所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高
HoverTree.Model.ArticleSelect类的作用
hvt
Web .net C# hovertree asp.net
ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013
PHP 判断是否使用代理 PHP Proxy Detector
天梯梦
proxy
1. php 类
I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to
apache的math库中的回归——regression(翻译)
lvdccyb
Math apache
这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。
多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。
数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。
基本覆盖了:线代,统计,矩阵,
最优化理论
曲线拟合
常微分方程
遗传算法(GA),
还有3维的运算。。。
基础数据结构和算法十三:Undirected Graphs (2)
sunwinner
Algorithm
Design pattern for graph processing.
Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation
云计算平台最重要的五项技术
sumapp
云计算 云平台 智城云
云计算平台最重要的五项技术
1、云服务器
云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。
特性
机型丰富
通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作;
仅需要几分钟,根据CP
《京东技术解密》有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
12月试读活动回顾:
http://webmaster.iteye.com/blog/2164754
本次技术图书试读活动获奖名单及相应作品如下:
一等奖(两名)
Microhardest:http://microhardest.ite