摘要: mysql的在线表结构修改,因为低效和阻塞读写。一直被诟病。至于ALTER TABLE 的原理,参看我上一篇文章。MySQL在线修改大表结构。看完后,发现的问题是还是会锁的,且对于在线更新的这块也是不能很好的处理,所以只能从理论上来理解,应用到在线库还是有问题的。不能保证数据的最新。今天看到perc... 阅读全文
posted @ 2015-01-23 17:12 TonyWu 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解。注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效率的事情的发生。 问题 1: 首先,我们需要搞清楚 "空值" 和"NULL"的概念: 1:空值('... 阅读全文
posted @ 2015-01-23 16:45 TonyWu 阅读(13487) 评论(0) 推荐(1) 编辑
摘要: 今天在处理业务库中二进制文件的时候,想更改二进制文件的过期天数,发现日期如果设置成2位以上的整数。都会出现如下的警告。不能成功的设置过期日期天数。MySQL版本从5.1到5.5都是一样的。mysql> set global expire_logs_days=100;Query OK, 0 rows ... 阅读全文
posted @ 2015-01-23 16:35 TonyWu 阅读(2792) 评论(0) 推荐(0) 编辑
摘要: 经常遇到的问题,一些不是特别重要但是又比较郁闷的事情。例如今天这个MySQL大小写敏感。先上测试结果。Linux环境下,不是windows平台下。区别很大。注意。一图胜千言mysql> show create table Ac;+-------+---------------------------... 阅读全文
posted @ 2015-01-23 16:31 TonyWu 阅读(50103) 评论(3) 推荐(2) 编辑
摘要: 在微博上看到dbsnake 有一个培训,因为是在北京举办的,过去不。所以问dbsnake 能否把相关的文档传我一份。 dbsnake 邮件给我时说有些东西没有写到文档里。 这个文档也是dbsnake 对Oracle 的一个经验的积累的过程,全部写出来也不实际,所以有机会还是多参加这类培训,这对技术提高还是很有帮助的。在这个文档里dbsnake 整理了一个PL/SQL 的开发文档。 贴过来,共享之。常用的PL/SQL开发原则 bysnake: (1)广泛使用绑定变量,特别是批量绑定,因为这可以有效的避免sql的硬解析和PL/SQL引擎和SQL引擎的上下文切换! (2)广泛使用UROWID来处理D 阅读全文
posted @ 2012-08-23 15:57 TonyWu 阅读(270) 评论(0) 推荐(0) 编辑
摘要: Oracle在9i以后,可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):1.获取单个的建表、视图和建索引的语法setpagesize0setlong90000setfeedbackoffsetechooffspoolDEPT.sqlselectdbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT')fromdual;selectdbms_metadata.get_ddl('VIEW','VIEW_NAME',& 阅读全文
posted @ 2012-08-23 15:08 TonyWu 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 根据NULL的定义,NULL表示的是未知,因此两个NULL比较的结果既不相等,也不不等,结果仍然是未知。根据这个定义,多个NULL值的存在应该不违反唯一约束。CREATE TABLE TESTAA (ID NUMBER)SELECT * FROM TESTAA;ALTER TABLE TESTAA ADD UNIQUE (ID);INSERT INTO TESTAA VALUES (NULL);单个值NULL可以随意插入进去,不报错。但是当唯一约束为复合字段时,则情况发生了变化。根据Oracle文档的描述,对于复合字段的唯一约束,不为空字段的值是不能重复的。也就是说,如果两个字段构成了一个唯一 阅读全文
posted @ 2012-08-23 14:42 TonyWu 阅读(5921) 评论(1) 推荐(0) 编辑
摘要: 1. 先通过top命令查看产用资源较多的pid号, 注意:top命令的user的oacle的,关注pid2.查询当前耗时的会话ID,用户名,sqlID等:其中top中的pid就是v$process的spid字段值。不是v$process视图中的pid值。select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$sessionwhere paddr in (select add 阅读全文
posted @ 2012-08-23 11:15 TonyWu 阅读(5123) 评论(1) 推荐(0) 编辑
摘要: 在写SQL 执行过程中,需要停掉部分session或者session失效,需要KILL 掉。首先通过v$session视图查找到需要的KILL的session的值。1.杀死对应的进程(上述的sid与serial#参数传入)alter system kill session 'sid,serial#';上述步骤完成之后,若还是无法释放对应的资源,进行下一步操作:2. 取得语句的进程号select spid,osuser,s.program from v$session s,v$process pwhere s.paddr=p.addr and s.sid=&sid;3.在 阅读全文
posted @ 2012-08-22 10:19 TonyWu 阅读(1247) 评论(0) 推荐(0) 编辑
摘要: 链接地址:http://readthedocs.org/docs/learn-python-the-hard-way-zh_cn-translation/en/latest/index.html# 阅读全文
posted @ 2012-01-19 16:10 TonyWu 阅读(234) 评论(0) 推荐(0) 编辑