平淡是真——啃啃不老阁 » 日志 » DB抓虾@@
DB抓虾@@
啃啃 发表于 2007-09-21 10:57:29
商业智能之思考
数据仓库涉及的数据源很多,结构自然复杂。在数据仓库这样一个庞大系统的实施过程中,引入监理机制也非常必要。在数据挖掘课题中,理解算法很重要,工具的使用也很重要,但是对于数据挖掘过程的掌握更为重要……
BI来BI去,有钱才能BI啊-l-
更改MySQL数据库目录位置
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把MySQL目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
7、重新启动MySQL服务
/etc/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
还要注意目录的属主和权限。
Windows下安装DB2通用数据库企业版
将DB2安装介质插入 CD-ROM 驱动器。在分布式安装中,则无需对每个DB2通用数据库安装使用相同的用户名和密码。变量name是db2 list database directory 命令返回的本地数据库的名称或您创建的数据库的名称……
在控制服务器和每个您将安装中央数据仓库、数据集市或代理站点的Windows系统上,完成以下步骤来安装DB2通用数据库:
请使用随Tivoli Data Warehouse提供的DB2安装介质。这确保您可获取正确的版本。
以具有足够权限的用户身份登录到计算机。在Windows系统上,您用来登录的帐户必须:
本地定义的,属于本地 Administrators 组。
具有以下高级用户权限:
◆以操作系统方式操作;
◆创建记号对象;
◆增加限额;
◆替换进程级记号。
将DB2安装介质插入 CD-ROM 驱动器。如果在插入DB2安装CD时程序不自动启动,请在CD的根目录运行setup.exe程序。单击安装,然后在得到提示时提供以下信息:
◆选择 DB2 企业版产品。
◆选择典型安装。
您可以更改缺省目标文件夹。DB2 的安装目录名中不能包含空格,从而使得以后无需使用变通方法来更正问题。对于其余的项,请接受缺省值。
对于DB2用户名,请指定一个尚未存在于您的系统中的用户。当DB2安装向导为您创建用户时,它确保该用户具有正确的角色和特权。如果该用户已经存在,请考虑删除它,然后让DB2安装过程重新创建它。
用户名必须遵循DB2用户名、用户标识、组名和实例名命名规则中描述的DB2命名约定。
请接受对所有DB2用户名和密码设置使用相同值的选项。
将您为每个DB2安装所指定的 DB2 用户名和密码记录在一个安全的地方。您需要有DB2用户信息才能安装 Tivoli Data Warehouse。
在分布式安装中,则无需对每个DB2通用数据库安装使用相同的用户名和密码。选择不安装OLAP Starter Kit。Tivoli Data Warehouse 不需要使用 OLAP Starter Kit。
通过完成以下步骤来测试连接:
通过在命令提示符处输入以下命令启动“DB2 命令行处理(CLP)”窗口:db2cmd。
要列出本地数据库,请输入以下命令:db2 list database directory。
在大多数情况下,该命令列出至少一个数据库,即使在新安装中也是如此。
如果命令未列出任何数据库,请使用以下命令创建一个数据库:db2 create database name。变量 name 是您为新数据库选择的名称。
要测试本地连接,请输入以下命令:db2 connect to name user userName using passWord。
变量name是db2 list database directory 命令返回的本地数据库的名称或您创建的数据库的名称。变量 userName 和 password 是在 DB2 安装过程中指定的用户名和密码。
如果此命令成功,则表示已安装了IBM DB2通用数据库企业版,且它就绪于远程连接。如果命令失败,请参阅 DB2 通用数据库出版物中列出的 DB2 文档,以获取故障诊断信息。
如果您有轻量级目录访问协议(LDAP),请确保对于此 DB2 实例它是禁用的。
在 DB2 命令窗口,运行以下命令:db2set -all | more。
检查 DB2_ENABLE_LDAP 的值。如果列出了此值,且它被设置为 YES,则通过在 DB2 命令窗口运行以下命令来禁用LDAP并重新启动 DB2 服务器:
db2set db2_enable_ldap=NO
db2stop force
db2start
如果此值未列出或设置为“NO”,则不需要执行任何操作。
Oracle中decode()函数的使用技巧
这是啥,就贴个连接吧,都是图,zz不过来
http://rss.chinabyte.com/RSS_redirect.htm?yy=***&toURL=http://searchdatabase.techtarget.com.cn/tips/457/7564957.shtml
在Windows系统下完全卸载Oracle的好方法
怎样在在Windows系统下完全卸载Oracle数据库?具体步骤如下:
1、以NT的Administrator 登陆;
2、通过控制面版-〉服务,停掉所有ORACLE服务;
3、打开注册表(REGEDIT命令),删除HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE;
4、打开注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services删除以ORACLE开头的所有服务;
5、删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application下以ORACLE开头的所有服务;
6、关闭REGEDIT;
7、打开控制面版-〉系统-〉环境变量;
8、如果ORACLE安装了JRE,就删除%ORACLE_HOME%\BIN和JRE路径。比如 \ORACLE\ORA81\BIN;G: \Program Files\Oracle\jre.1.7\bin;
9、删除\Winnt\Profiles\All Users\Start Menu\Programs\Oracle 和\Winnt\Profiles\All Users\Start Menu\Programs\Oracle;
10、删除\Program Files\Oracle;
11、重新启动机器;
12、删除所有ORACLE目录(在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOMES下)
在 Windows 95 / Windows 98:
1. 打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
2.删除前面步骤中的第3步中的ORACLE
3. 删除AUTOEXEC.BAT 中的 %ORACLE_HOME%\bin 和 JRE
4. 删除所有ORACLE目录
5. \Program Files\Oracle
6. \Windows\Start Menu\Programs\Oracle - \Windows\StartMenu\Programs\Oracle
7. 重新启动
SQL中使用WITH AS提高性能
这是啥@@
本文结合笔者实际的工作情况,说明了如何使用with as改写存储过程,从而大幅提高SQL的运行时间……
1. 案例起因
公司门店应用程序每天都要出一份报表,用来统计所有商品当天的期初库存数量、入库数量、出库数量
及当天的期末库存数量。运行半年以后,这份报表运行越来越慢,到现在,每次运行该报表显示当天数据时需要近20秒的时间。于是开发人员找到我,希望我看看,是不是可以使该报表运行的时间更短。
该报表就是一段SQL语句,主要由三部分组成,第一部分是计算每个商品的期初数量,第二部分是计算每个商品的当天发生(包括入库和出库的)数量,第三部分是计算每个商品的期末数量,也就是当天的余额。每个部分使用UNION ALL连接起来。
我看到该报表,第一个感觉就是这段SQL里的每个部分都要对表进行扫描,明显成本过高。应该可以使用WITH AS进行改写。
2. WITH AS的含义
WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。
特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。
3. 案例说明
首先介绍该SQL所涉及到的主要的表的结构。该表表名为fin,用来存放每天每个商品的发生数以及该商
品的余额数。其表结构为如下所示(这里我只选取了与我们要讨论的SQL相关的部分表字段)。
SQL> desc fin
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
。。。。。。
DAY DATE
SKU VARCHAR2(8)
INQTY NUMBER(16,6)
OUTQTY NUMBER(16,6)
LASTQTY NUMBER(16,6)
。。。。。。。。
简单解释一下各个字段的含义:
1) DAY:发生的日期。
2) SKU:发生交易的商品代码。
3) INQTY:商品入库数量。
4) OUTQTY:商品出库数量。
5) LASTQTY:商品的余额数量。
该表中含有的记录数量为:
SQL> SELECT count(*) FROM fin;
COUNT(*)
----------
4729319
奇怪的Oracle JDeveloper小漏洞
对于Oracle JDeveloper我没有太多可抱怨的地方。它是一个相当好的集成开发环境,而且与Oracle产品有完美的集成……
目前,我从事Oracle方面的研发,每当提到Java开发环境时,这方面确实存在多种选择。我选择使用Oracle JDeveloper,它像一个良好的Oracle小士兵一样。
实际上,对于Oracle JDeveloper我没有太多可抱怨的地方。它是一个相当好的集成开发环境,而且与Oracle产品有完美的集成。比如说我们可以直接在该集成开发环境 (IDE)中连接到Oracle数据库并可以创建/编辑/浏览数据库对象。另外,它集成了Oracle的接口,可允许我们通过单击鼠标就能把一个新的 Java portlets部署到接口中去。目前,我们最希望的是它能够自动的将新的portlet注册到接口中去,遗憾地是这部分工作目前还必须手工完成。
不过,像所有其它大型软件一样,JDeveloper也有一些奇怪的小漏洞。我曾在最后的两个版本中,包括目前的10.1.3.3版本,看到的一个漏洞是自动完成功能不能始终用于匿名内部类。
如果你在编写一个匿名内部类而且不添加额外的换行的话,那么结果是自动完成功能不会自动添加结束的大括号。解释起来有点困难,因此我录了一小段 YouTube视频。遗憾地是声音播放不出来——CamStudio的配置有点问题。不过这段视频可以帮助你理解我们所说的问题,因此没有再麻烦重新录制,我们就使用了这一个。
这确实不是一个很大的问题。而且对于像我们从事Web编程的开发人员来说并不需要大量的匿名内部类。我只是在进行Swing UI用户接口编程的时候才会用到。我们没有按照规则的方式,因为我的Java代码大部分以portlets和JSP结束。
另外,我认为很有趣的是这个漏洞在经过了该产品许多版本以后仍旧存在。我想如果JDeveloper是一个开源产品的话,那么肯定会有人对此漏洞十分厌恶,从而会进行修复。但是它不是一个开源产品,因此漏洞一直存在。我还没有试验JDeveloper11的预发行版,但是我敢打赌这个漏洞仍会存在。
轻松掌握SQL Server数据同步技术
本文将教你轻松掌握SQL Server数据同步技术……
SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章。
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。
SQL SERVER复制技术类型
SQL SERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。
接下来我们就一步一步来实现复制的步骤。
一:先来配置出版服务器
(1)选中指定[服务器]节点。
(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令。
(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)。
二:创建出版物
(1)选中指定的服务器。
(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框。
(3)选择要创建出版物的数据库,然后单击[创建发布]。
(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)。
(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器
(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表。
(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
三:设计订阅
(1)选中指定的订阅服务器。
(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]。
(3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。然后[下一步]直到操作完。
PlayStation2的Linux上装postgresql
娱乐一把@@
http://bbs.chinaunix.net/attachments/month_0709/20070919_64e5709ad1487f3f08f98hK6djptKsv9.jpg
影响 PostgreSQL 的内存使用的配置参数
max_connections (integer)
决定和数据库连接的并发连接数目的最大值。 缺省通常是 100,但是如果你的内核设置不支持这么大(在 initdb 的时候判断), 可能会比这个数少。这个参数只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多的 System V 共享内存或者信号灯, 可能超过你的操作系统缺省配置的许可值。必要的话,参阅 Section 16.4.1 获取有关如何调节这个参数的信息。
max_prepared_transactions (integer)
设置可以同时处于"准备好"状态的事务的最大数目(参阅 PREPARE TRANSACTION)。 把这个参数设置为零则关闭准备好的事务的特性。缺省是 5。 这个选项只能在服务器启动的时候设置。
如果你不使用准备好事务,这个参数也可以设置为零。 如果你使用它们,你可能会需要把 max_prepared_transactions 设置成至少和 max_connections 一样大, 以避免在准备步骤的失败。
增加这个参数可能会导致 PostgreSQL 要求比缺省的操作系统配置的更多的 System V 共享内存。必要时请参阅 Section 16.4.1 获取有关如何调节这个参数的信息。
shared_buffers (integer)
设置数据库服务器将使用的共享内存缓冲区数量。缺省通常是 1000, 如果你的内核设置不支持这么大,那么可以少些(在 initdb 的时候决定)。 每个缓冲区大小的典型值是 8192 字节,除非你在编译的时候修改了 BLCKSZ 的值。这个数值必须大于 16, 并且至少是 max_connections 数值的两倍;不过,这个数值大一些通常可以改进性能。 对于生产安装,我们通常建议是几千。这个选项只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多 System V 的共享内存, 超出你的操作系统配置许可的范围。必要时请参阅 Section 16.4.1 获取如何调整这些参数的信息。
wal_buffers (integer)
放在共享内存里用于 WAL 数据的磁盘页面缓冲区的数目。 这个设置只需要大到能保存下一次事务生成的 WAL 数据即可, 因为这些数据在每次事务提交都会写入磁盘。 这个选项只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多的 System V 共享内存,可能超过你的操作系统的缺省配置。必要时,参阅 Section 16.4.1 获取如何调节这些参数的信息。
max_fsm_relations (integer)
设置自由空间将在共享地自由空间映射里跟踪的最大数目的关系(表和索引)。 每个槽位大概要使用五十字节左右。缺省是 1000。 这个选项只能在服务器启动的时候设置。
max_fsm_pages (integer)
设置在共享的自由空间映射表里自由空间会跟踪的最大数目的磁盘页面数。 每个页面槽位需要消耗六个字节的共享内存。这个设置必须大于 16 * max_fsm_relations。 缺省是 20000。 这个选项只能在服务器启动的时候设置。
不抓了,累了,谁要是有推荐的DB相关的好的网站,请顶一把。
数据仓库涉及的数据源很多,结构自然复杂。在数据仓库这样一个庞大系统的实施过程中,引入监理机制也非常必要。在数据挖掘课题中,理解算法很重要,工具的使用也很重要,但是对于数据挖掘过程的掌握更为重要……
BI来BI去,有钱才能BI啊-l-
更改MySQL数据库目录位置
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把MySQL目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
7、重新启动MySQL服务
/etc/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
还要注意目录的属主和权限。
Windows下安装DB2通用数据库企业版
将DB2安装介质插入 CD-ROM 驱动器。在分布式安装中,则无需对每个DB2通用数据库安装使用相同的用户名和密码。变量name是db2 list database directory 命令返回的本地数据库的名称或您创建的数据库的名称……
在控制服务器和每个您将安装中央数据仓库、数据集市或代理站点的Windows系统上,完成以下步骤来安装DB2通用数据库:
请使用随Tivoli Data Warehouse提供的DB2安装介质。这确保您可获取正确的版本。
以具有足够权限的用户身份登录到计算机。在Windows系统上,您用来登录的帐户必须:
本地定义的,属于本地 Administrators 组。
具有以下高级用户权限:
◆以操作系统方式操作;
◆创建记号对象;
◆增加限额;
◆替换进程级记号。
将DB2安装介质插入 CD-ROM 驱动器。如果在插入DB2安装CD时程序不自动启动,请在CD的根目录运行setup.exe程序。单击安装,然后在得到提示时提供以下信息:
◆选择 DB2 企业版产品。
◆选择典型安装。
您可以更改缺省目标文件夹。DB2 的安装目录名中不能包含空格,从而使得以后无需使用变通方法来更正问题。对于其余的项,请接受缺省值。
对于DB2用户名,请指定一个尚未存在于您的系统中的用户。当DB2安装向导为您创建用户时,它确保该用户具有正确的角色和特权。如果该用户已经存在,请考虑删除它,然后让DB2安装过程重新创建它。
用户名必须遵循DB2用户名、用户标识、组名和实例名命名规则中描述的DB2命名约定。
请接受对所有DB2用户名和密码设置使用相同值的选项。
将您为每个DB2安装所指定的 DB2 用户名和密码记录在一个安全的地方。您需要有DB2用户信息才能安装 Tivoli Data Warehouse。
在分布式安装中,则无需对每个DB2通用数据库安装使用相同的用户名和密码。选择不安装OLAP Starter Kit。Tivoli Data Warehouse 不需要使用 OLAP Starter Kit。
通过完成以下步骤来测试连接:
通过在命令提示符处输入以下命令启动“DB2 命令行处理(CLP)”窗口:db2cmd。
要列出本地数据库,请输入以下命令:db2 list database directory。
在大多数情况下,该命令列出至少一个数据库,即使在新安装中也是如此。
如果命令未列出任何数据库,请使用以下命令创建一个数据库:db2 create database name。变量 name 是您为新数据库选择的名称。
要测试本地连接,请输入以下命令:db2 connect to name user userName using passWord。
变量name是db2 list database directory 命令返回的本地数据库的名称或您创建的数据库的名称。变量 userName 和 password 是在 DB2 安装过程中指定的用户名和密码。
如果此命令成功,则表示已安装了IBM DB2通用数据库企业版,且它就绪于远程连接。如果命令失败,请参阅 DB2 通用数据库出版物中列出的 DB2 文档,以获取故障诊断信息。
如果您有轻量级目录访问协议(LDAP),请确保对于此 DB2 实例它是禁用的。
在 DB2 命令窗口,运行以下命令:db2set -all | more。
检查 DB2_ENABLE_LDAP 的值。如果列出了此值,且它被设置为 YES,则通过在 DB2 命令窗口运行以下命令来禁用LDAP并重新启动 DB2 服务器:
db2set db2_enable_ldap=NO
db2stop force
db2start
如果此值未列出或设置为“NO”,则不需要执行任何操作。
Oracle中decode()函数的使用技巧
这是啥,就贴个连接吧,都是图,zz不过来
http://rss.chinabyte.com/RSS_redirect.htm?yy=***&toURL=http://searchdatabase.techtarget.com.cn/tips/457/7564957.shtml
在Windows系统下完全卸载Oracle的好方法
怎样在在Windows系统下完全卸载Oracle数据库?具体步骤如下:
1、以NT的Administrator 登陆;
2、通过控制面版-〉服务,停掉所有ORACLE服务;
3、打开注册表(REGEDIT命令),删除HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE;
4、打开注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services删除以ORACLE开头的所有服务;
5、删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application下以ORACLE开头的所有服务;
6、关闭REGEDIT;
7、打开控制面版-〉系统-〉环境变量;
8、如果ORACLE安装了JRE,就删除%ORACLE_HOME%\BIN和JRE路径。比如 \ORACLE\ORA81\BIN;G: \Program Files\Oracle\jre.1.7\bin;
9、删除\Winnt\Profiles\All Users\Start Menu\Programs\Oracle 和\Winnt\Profiles\All Users\Start Menu\Programs\Oracle;
10、删除\Program Files\Oracle;
11、重新启动机器;
12、删除所有ORACLE目录(在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOMES下)
在 Windows 95 / Windows 98:
1. 打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
2.删除前面步骤中的第3步中的ORACLE
3. 删除AUTOEXEC.BAT 中的 %ORACLE_HOME%\bin 和 JRE
4. 删除所有ORACLE目录
5. \Program Files\Oracle
6. \Windows\Start Menu\Programs\Oracle - \Windows\StartMenu\Programs\Oracle
7. 重新启动
SQL中使用WITH AS提高性能
这是啥@@
本文结合笔者实际的工作情况,说明了如何使用with as改写存储过程,从而大幅提高SQL的运行时间……
1. 案例起因
公司门店应用程序每天都要出一份报表,用来统计所有商品当天的期初库存数量、入库数量、出库数量
及当天的期末库存数量。运行半年以后,这份报表运行越来越慢,到现在,每次运行该报表显示当天数据时需要近20秒的时间。于是开发人员找到我,希望我看看,是不是可以使该报表运行的时间更短。
该报表就是一段SQL语句,主要由三部分组成,第一部分是计算每个商品的期初数量,第二部分是计算每个商品的当天发生(包括入库和出库的)数量,第三部分是计算每个商品的期末数量,也就是当天的余额。每个部分使用UNION ALL连接起来。
我看到该报表,第一个感觉就是这段SQL里的每个部分都要对表进行扫描,明显成本过高。应该可以使用WITH AS进行改写。
2. WITH AS的含义
WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。
特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。
3. 案例说明
首先介绍该SQL所涉及到的主要的表的结构。该表表名为fin,用来存放每天每个商品的发生数以及该商
品的余额数。其表结构为如下所示(这里我只选取了与我们要讨论的SQL相关的部分表字段)。
SQL> desc fin
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
。。。。。。
DAY DATE
SKU VARCHAR2(8)
INQTY NUMBER(16,6)
OUTQTY NUMBER(16,6)
LASTQTY NUMBER(16,6)
。。。。。。。。
简单解释一下各个字段的含义:
1) DAY:发生的日期。
2) SKU:发生交易的商品代码。
3) INQTY:商品入库数量。
4) OUTQTY:商品出库数量。
5) LASTQTY:商品的余额数量。
该表中含有的记录数量为:
SQL> SELECT count(*) FROM fin;
COUNT(*)
----------
4729319
奇怪的Oracle JDeveloper小漏洞
对于Oracle JDeveloper我没有太多可抱怨的地方。它是一个相当好的集成开发环境,而且与Oracle产品有完美的集成……
目前,我从事Oracle方面的研发,每当提到Java开发环境时,这方面确实存在多种选择。我选择使用Oracle JDeveloper,它像一个良好的Oracle小士兵一样。
实际上,对于Oracle JDeveloper我没有太多可抱怨的地方。它是一个相当好的集成开发环境,而且与Oracle产品有完美的集成。比如说我们可以直接在该集成开发环境 (IDE)中连接到Oracle数据库并可以创建/编辑/浏览数据库对象。另外,它集成了Oracle的接口,可允许我们通过单击鼠标就能把一个新的 Java portlets部署到接口中去。目前,我们最希望的是它能够自动的将新的portlet注册到接口中去,遗憾地是这部分工作目前还必须手工完成。
不过,像所有其它大型软件一样,JDeveloper也有一些奇怪的小漏洞。我曾在最后的两个版本中,包括目前的10.1.3.3版本,看到的一个漏洞是自动完成功能不能始终用于匿名内部类。
如果你在编写一个匿名内部类而且不添加额外的换行的话,那么结果是自动完成功能不会自动添加结束的大括号。解释起来有点困难,因此我录了一小段 YouTube视频。遗憾地是声音播放不出来——CamStudio的配置有点问题。不过这段视频可以帮助你理解我们所说的问题,因此没有再麻烦重新录制,我们就使用了这一个。
这确实不是一个很大的问题。而且对于像我们从事Web编程的开发人员来说并不需要大量的匿名内部类。我只是在进行Swing UI用户接口编程的时候才会用到。我们没有按照规则的方式,因为我的Java代码大部分以portlets和JSP结束。
另外,我认为很有趣的是这个漏洞在经过了该产品许多版本以后仍旧存在。我想如果JDeveloper是一个开源产品的话,那么肯定会有人对此漏洞十分厌恶,从而会进行修复。但是它不是一个开源产品,因此漏洞一直存在。我还没有试验JDeveloper11的预发行版,但是我敢打赌这个漏洞仍会存在。
轻松掌握SQL Server数据同步技术
本文将教你轻松掌握SQL Server数据同步技术……
SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章。
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。
SQL SERVER复制技术类型
SQL SERVER提供了三种复制技术,分别是:
1、快照复制(呆会我们就使用这个)
2、事务复制
3、合并复制
只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。
接下来我们就一步一步来实现复制的步骤。
一:先来配置出版服务器
(1)选中指定[服务器]节点。
(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令。
(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)。
二:创建出版物
(1)选中指定的服务器。
(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框。
(3)选择要创建出版物的数据库,然后单击[创建发布]。
(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)。
(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器
(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表。
(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
三:设计订阅
(1)选中指定的订阅服务器。
(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅]。
(3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。然后[下一步]直到操作完。
PlayStation2的Linux上装postgresql
娱乐一把@@
http://bbs.chinaunix.net/attachments/month_0709/20070919_64e5709ad1487f3f08f98hK6djptKsv9.jpg
影响 PostgreSQL 的内存使用的配置参数
max_connections (integer)
决定和数据库连接的并发连接数目的最大值。 缺省通常是 100,但是如果你的内核设置不支持这么大(在 initdb 的时候判断), 可能会比这个数少。这个参数只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多的 System V 共享内存或者信号灯, 可能超过你的操作系统缺省配置的许可值。必要的话,参阅 Section 16.4.1 获取有关如何调节这个参数的信息。
max_prepared_transactions (integer)
设置可以同时处于"准备好"状态的事务的最大数目(参阅 PREPARE TRANSACTION)。 把这个参数设置为零则关闭准备好的事务的特性。缺省是 5。 这个选项只能在服务器启动的时候设置。
如果你不使用准备好事务,这个参数也可以设置为零。 如果你使用它们,你可能会需要把 max_prepared_transactions 设置成至少和 max_connections 一样大, 以避免在准备步骤的失败。
增加这个参数可能会导致 PostgreSQL 要求比缺省的操作系统配置的更多的 System V 共享内存。必要时请参阅 Section 16.4.1 获取有关如何调节这个参数的信息。
shared_buffers (integer)
设置数据库服务器将使用的共享内存缓冲区数量。缺省通常是 1000, 如果你的内核设置不支持这么大,那么可以少些(在 initdb 的时候决定)。 每个缓冲区大小的典型值是 8192 字节,除非你在编译的时候修改了 BLCKSZ 的值。这个数值必须大于 16, 并且至少是 max_connections 数值的两倍;不过,这个数值大一些通常可以改进性能。 对于生产安装,我们通常建议是几千。这个选项只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多 System V 的共享内存, 超出你的操作系统配置许可的范围。必要时请参阅 Section 16.4.1 获取如何调整这些参数的信息。
wal_buffers (integer)
放在共享内存里用于 WAL 数据的磁盘页面缓冲区的数目。 这个设置只需要大到能保存下一次事务生成的 WAL 数据即可, 因为这些数据在每次事务提交都会写入磁盘。 这个选项只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多的 System V 共享内存,可能超过你的操作系统的缺省配置。必要时,参阅 Section 16.4.1 获取如何调节这些参数的信息。
max_fsm_relations (integer)
设置自由空间将在共享地自由空间映射里跟踪的最大数目的关系(表和索引)。 每个槽位大概要使用五十字节左右。缺省是 1000。 这个选项只能在服务器启动的时候设置。
max_fsm_pages (integer)
设置在共享的自由空间映射表里自由空间会跟踪的最大数目的磁盘页面数。 每个页面槽位需要消耗六个字节的共享内存。这个设置必须大于 16 * max_fsm_relations。 缺省是 20000。 这个选项只能在服务器启动的时候设置。
不抓了,累了,谁要是有推荐的DB相关的好的网站,请顶一把。
曾经的这一天...
- » 2006年: 桃桃生日快乐
- » 2006年: 工作不顺利-,-
- » 2005年: MSN Space
- » 2004年: 只想说我每天都很开心
相关日志:
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
