在Oracle 11.2.0.1.0下dbms_stats.gather_table_stats收集直方图不准

在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间。 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了。
MySQL 工具:
    1. 自带mysqlimport工具。
    2. 命令行 load data infile ...
    3. 利用mysql-connector-python Driver来写的脚本。
 PostgreSQL 工具:
    1. pgloader 第三方工具。
    2. 命令行 copy ... from ...
    3. 利用psycopg2写的python 脚本。
测试表结构:

mysql> desc t1;
+----------+-----------+------+-----+-------------------+-------+
| Field    | Type      | Null | Key | Default           | Extra |
+----------+-----------+------+-----+-------------------+-------+
| id       | int(11)   | NO   | PRI | NULL              |       |
| rank     | int(11)   | NO   |     | NULL              |       |
| log_time | timestamp | YES  |     | CURRENT_TIMESTAMP |       |
+----------+-----------+------+-----+-------------------+-------+
3 rows in set (0.00 sec)
mysql> select count(*) from t1;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (6.80 sec)

测试CSV文件:
t1.csv

MySQL 自身的loader: (时间24妙)

mysql> load data infile ‘/tmp/t1.csv‘ into table t1 fields terminated by ‘,‘ enclosed by ‘"‘ lines terminated by ‘\r\n‘;
Query OK, 1000000 rows affected (24.21 sec)
Records: 1000000  Deleted: 0  Skipped: 0  Warnings: 0

MySQL python 脚本:(时间23秒)
>>> 
Running 23.289 Seconds

MySQL 自带mysqlimport:(时间23秒)

[[email protected] ~]# time mysqlimport t_girl ‘/tmp/t1.csv‘ --fields-terminated-by=‘,‘ --fields-enclosed-by=‘"‘ --lines-terminated-by=‘\r\n‘ --use-threads=2 -uroot -proot
t_girl.t1: Records: 1000000  Deleted: 0  Skipped: 0  Warnings: 0

real    0m23.664s
user    0m0.016s
sys     0m0.037s

PostgreSQL 自身COPY:(时间7秒)

t_girl=# copy t1 from ‘/tmp/t1.csv‘ with delimiter ‘,‘;
COPY 1000000
Time: 7700.332 ms

Psycopg2 驱动copy_to方法:(时间6秒)

[[email protected] scripts]# python load_data.py
Running 5.969 Seconds.

Pgloader 导入CSV:(时间33秒)

[[email protected] ytt]# pgloader commands.load
                    table name       read   imported     errors            time

                        ytt.t1    1000000    1000000          0         33.514s
------------------------------  ---------  ---------  ---------  --------------
------------------------------  ---------  ---------  ---------  --------------
             Total import time    1000000    1000000          0         33.514s

Pgloader 直接从MySQL 拉数据:(时间51秒)

[[email protected] ytt]# pgloader commands.mysql
                    table name       read   imported     errors            time

               fetch meta data          2          2          0          0.138s
------------------------------  ---------  ---------  ---------  --------------
                            t1    1000000    1000000          0         51.136s
------------------------------  ---------  ---------  ---------  --------------
------------------------------  ---------  ---------  ---------  --------------
------------------------------  ---------  ---------  ---------  --------------
             Total import time    1000000    1000000          0         51.274s

附上commands.load和commands.mysql

commands.load:
LOAD CSV
   FROM ‘/tmp/ytt.csv‘ WITH ENCODING UTF-8
        (
           id, rank, log_time
        )
   INTO postgresql://t_girl:[email protected]:5432/t_girl?ytt.t1
   WITH skip header = 0,
        fields optionally enclosed by ‘"‘,
        fields escaped by backslash-quote,
        fields terminated by ‘,‘  

    SET work_mem to ‘32 MB‘, maintenance_work_mem to ‘64 MB‘; 

commands.mysql:
LOAD DATABASE
     FROM mysql://python_user:[email protected]:3306/t_girl?t1
     INTO postgresql://t_girl:[email protected]:5432/t_girl?ytt.t1

 with data only

  SET maintenance_work_mem to ‘64MB‘,
      work_mem to ‘3MB‘,
      search_path to ‘ytt‘;

附pgloader 手册:
http://pgloader.io/howto/pgloader.1.html

在Oracle 11.2.0.1.0下dbms_stats.gather_table_stats收集直方图不准

时间: 2024-10-12 14:57:48

在Oracle 11.2.0.1.0下dbms_stats.gather_table_stats收集直方图不准的相关文章

oracle 11.2版本.sysman/log下emdb.nohup文件偏大,如何解决?

参考文章 实验: 1.查看当前emctl status dbconsole为runing状态 2.关闭emctl stop dbconsole 3.删除/u01/app/oracle/product/11.2.0/db_1/gtone.localdomain_CQRCB/sysman/log目录下emdb.nohup文件 4.重新启动emctl start dbconsole 5.查看自动生成了emdb.nohup文件 论证emdb.nohup文件与emctl的相关性 1.通过fuser命令,查

Oracle 11.2.0.1.0下ACS测试令人失望

在版本11.2.0.1.0,ACS(adaptiver cursor sharing)很令我失望,测试的结果是: 1. 在绑定窥探有效的情况下,使用绑定变量,在直方图准确的情况下,CBO总是以执行的第一条SQL的执行计划为准. 2. 在绑定窥探失效的情况下,使用绑定变量,CBO完全忽略直方图. 在这个版本下的SQL,如果是偏于OLAP的SQL,还是不用使用绑定变量为佳,跟10g一样的处理方式. SQL> select * from v$version; BANNER --------------

Linux 环境下安装Oracle 11.2.0.4.0 详细步骤

前言: 最近在学习oracle,这里我把安装和配置过程记录下来,按照我的这个方法一步一步基本上不会有问题,如果有问题可以留言大家探讨互相学习一下. 安装环境和版本: 系统版本:Redhat 6.5 oracle版本:11.2.0.4.0 虚拟机版本:Vbox 5.0.2 配置要求: 内存1.5G+,SWAP适宜大小为2G 选择服务时,建议全部选中,关闭防火墙,关闭selinux 一.安装前环境准备 1.安装Oracle服务器软件,需要安装如下软件包(尽量配置yum安装,这样省事儿) yum -y

我的淘宝:Ubuntu 14.04.5上安装 Oracle 11.2.0.4 RAC

进入淘宝店铺 教程:Ubuntu 14.04.5上安装 Oracle 11.2.0.4 RAC 请支持下.价格好商量!

我的淘宝:Ubuntu 16.04.2上安装 Oracle 11.2.0.4 RAC

进入淘宝店铺 教程:Ubuntu 16.04.2上安装 Oracle 11.2.0.4 RAC 请支持下.价格好商量!

我的淘宝:Ubuntu 12.04.5上安装 Oracle 11.2.0.4 RAC

进入淘宝店铺 教程:Ubuntu 12.04.5上安装 Oracle 11.2.0.4 RAC 请支持下.价格好商量!

Oracle 11.2.0.4静默安装软件和创建数据库

在没有图形界面的情况时,安装Oracle数据库软件和创建数据库就只能使用命令行的方式进行. 本文假设安装的前提条件都已经配置好. 一.静默安装数据库软件 1.准备参数文件 这个参数文件是用于安装软件使用的,里边配置了需要安装的版本.语言.ORACLE_HOME等信息. 这个文件的模版在database/response目录下的db_install.rsp,文件中的各个参数作用参考http://docs.oracle.com/cd/E11882_01/em.112/e12255/oui3_resp

Oracle 11.2.0.4 PSU实施文档

1. 本次服务详细过程 1.1 背景概述 升级数据库PUS,数据库环境,操作系统版本:RedHat5.8 x64,数据库版本Oracle 11.2.0.4 x64 RAC Grid: 11.2.0.4,Oracle database: 11.2.0.4 1.2 安装前准备 -rw-r--r-- 1 oracle oinstall  93376160 Mar 25 11:43 p21948347_112040_Linux-x86-64.zip -rw-r--r-- 1 oracle oinstal

ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RAC 版权声明:本文为博主原创文章,未经博主允许不得转载. VBOX + Oracle Linux 6U3 + ORACLE 11.2.0.3.0 RAC 安装 环境: 虚拟机          VIRTUAL BOX OS                ORACLE LINUX 6.3_X86_64