摘要:
我想在我的系统上没事儿搞搞安卓开发,练习练习。于是我需要下载一些SDK,下面把今天做的事情记录一下,以后应该能用上。 首先是下载ADT,这个链接在这里:http://developer.android.com/sdk/index.html#ExistingIDE。有各种各样的版本可以下载,我用的是ubuntu12.04 x64,下载linux版本就可以了。这个zip包里会有eclipse,所以不需要麻烦的再下载eclipse的插件了。 下载以后解压到一个目录下即可,这里面会有两个目录,sdk和eclipse,就用这个eclipse就可以了。打开以后可能会报错,说找不到adb,go... 阅读全文
摘要:
我希望用程序生成一些测试数据,测试一下开源数据库中哪个比较适合我们的数据仓库项目,于是有了这篇随笔。 其实测试数据可以用过程生成,但是我想学学java因此决定用程序实现。而且我先在把windows这个让我一打开电脑就想娱乐的系统卸载了,现在纯Ubuntu。 先记录下Java的配置: 首先需要下载Java,这是一个很简单的过程,链接在这里:http://www.oracle.com/technetwork/java/javase/downloads/index.html。我的是64位系统,因此选择了64位的gz包。下载好以后随便解压到哪个目录底下都是可以的。然后只需要配置这么几个环境变量... 阅读全文
摘要:
换了新的单位我现在也从oracle从业者变成了mysql从业者,当然放弃oracle的原因主要是因为在新单位可以尽量少的写代码了。 现在我面对的是一个数据仓库,和上一家公司一样,数据仓库最让我们技术人员受不鸟的是数据量太大,存储,I/O,效率都让人想死,每次有些统计分析要求,在清单表里查询简直是让我等到花儿都谢了。那么会有什么好的办法呢?我想这个问题提出来会有很多人告诉我用hadoop。是的,hadoop是现在最流行的大数据解决方案,但是hadoop有一个问题,就是我们小组现在没有人会,还需要很长的时间去学习,去搭建,而且我也不愿意轻易放弃传统的关系型数据库,说真的我连Mango都很抵制。 . 阅读全文
摘要:
昨天有个同事找我看了一段SQL,说是很慢,我首先看了看执行计划,发现COST很大,但是同时我也发现分区读取的有很大的问题。表示这样的: create table test1 ( day_id number ) partition by range(day_id) ( partition part_0 阅读全文
摘要:
最近整理了一下系统内所有表的空间占用情况,发现其中一些表其实只有及万行,却占用了非常大的空间,那么显而易见,这个表的“碎片”实在是太多了。 最开始接触oracle的时候我认为删除数据就是delete,但是后来的学习中,发现事情并不是我想象的那么简单,delete之后,系统也只是将这部分数据块置为可写 阅读全文
摘要:
今天有同事告诉我,有个SQL执行了好久好久执行不出来,我说好就是多久?她说一天左右了。真是令人咋舌的SQL。于是我要来了SQL看了看执行计划,确实让人咋舌。 下图中就是执行计划的截图: 25G的COST和75T的Bytes确实是无法承受之重。这个SQL是这样子的: select部分做了很多sum运算 阅读全文
摘要:
最近负责起了DBA的部分工作,于是有一天在对表空间的清理中发现了一张表,这个表有27G那么大,是一个分区表,按天分区。我查看了过程,每天删除35天以前的数据,但是用的方法是delete,那么我就可以很明确的推断出,这个表占用了大量本应该释放的空间。 我第一个使用的方法是move: alter tab 阅读全文
摘要:
很久以前写了一个关于分区表的博文(http://www.cnblogs.com/wingsless/archive/2012/08/06/2625809.html),后来在实际的工作中发现,我们的存储过程中存在很多这样子的写法: CREATE OR REPLACE PROCEDURE P_TEST_ 阅读全文
摘要:
前一篇随笔被我写的乱七八糟的,于是新开一块。 从库建好了的准备工作开始写吧。 1 创建表空间: SQL> CREATE TABLESPACE WINGS DATAFILE 'D:\app\user\oradata\oracl\WINGS_F01.DB F' SIZE 50M AUTOEXTEND O 阅读全文
摘要:
今天收到一个同事的问题,有一段SQL跑了很久很久,根本没有结果,根据同事的反映,这个SQL一个月比一个月要慢。这是不被允许的事情,我们要做的就是对这个SQL进行一次优化。下面就是这次优化的记录。 首先说SQL: select t.month_id, t1.area_id, t1.local_id, 阅读全文
摘要:
今天收到一个同事的求助,说有一个SQL跑了一个多小时没有结果。我看了看,这个SQL是这样的(隐藏了敏感信息): SELECT 电话号码, 列2, 列3, MAX(STARTTIME), FLAG FROM 表1 T1 WHERE FLAG = '0' AND 电话号码 NOT IN (SELECT 电话号码 FROM 表2 T2) GROUP BY 电话号码, 列2, 列3, FLAG; 我首先查看了两个表的数据量,表1有将近300万条,表2有不到10万条记录。并不是很大的数据。于是我关注到了not in,这个语句是几乎所有的优化指南上都明确说了要避免的语句。于是我就把这句改了 阅读全文
摘要:
我一直不知道到底有没有函数可以实现标题的功能,所以我写了个适合我们业务的。如果大家有更好的,请告诉我。下面是源码: CREATE OR REPLACE FUNCTION REPLACE_POSITION(STR_IN VARCHAR2, POSITION INTEGER, NEW_CHAR VARC 阅读全文
摘要:
在linux下面安装oracle是一件让人恼火的事情,不像windows下面那样简单,但是windows在服务器领域实在是不争气,一个好的DBA同时也是一个linux高手。我今天就折腾了一下oracle,下面把安装过程记录下来,以供我以后参考。 1 修改内核参数: /etc/sysctl.conf 在这个文件后面添加如下内容:kernel.shmall = 268435456kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max 阅读全文
摘要:
熬过了月初的匆忙之后终于有一个喘息的机会了。最近又开始接手过去的存储过程的改造工作,我在改造中发现了一些问题,我们的同事写insert语句的时候总是喜欢加上append这个hints。这个习惯的养成应该都是我们那个模板造成的,大家在写的时候也就不去思考为什么要加这个hints了,也不知道加这个hin 阅读全文
摘要:
我曾经迷茫于一个问题,为什么有的时候明明有索引,却无法提升效率。后来我在很多书上和论坛上看到,索引分为3种,默认的是B树索引,这个类型的索引在对付重复很多很多的列的时候并没有任何优势,比如性别列这个只有两个值(不排除会有第三值)的列。而这种重复度很高的列在我平时的生产系统中非常多,比如运营商的行政区 阅读全文