hibernate 生成的 sql 语句 ? 代值
转自: http://hi.baidu.com/beanchx/blog/item/ed056509d66f65cc3bc763f4.html
p6spy的替代品:jdbc logger
2007年09月13日 下午 01:07
首先介绍一下这个开源的项目。这个是一个对jdbc中的sql进行logger的一个工具。若在项目中采用了较多的preparedStatement,那么打印出来的sql会有很多"?",非常不方便。有一个产品为p6spy,可以完成显示出问号的内容,但是目前已经停止更新了。jdbclogger就是一个p6spy的替代品,而且非常轻巧,仅仅22k大小。目前jdbc logger支持的数据库为:mysql、oracle、hsqldb、postgresql。
jdbc logger的官方网站为:http://jdbclogger.sourceforge.net/index.html
下面看一下如何配置使用这个jdbc logger。
步骤1:下载jdbclogger,有源码以及jar文件下载。目前jdbc logger为0.5版本。
下载地址如下:
http://sourceforge.net/projects/jdbclogger/files
有四个jar文件可以下载,若使用oracle数据库的话,可能需要下载下面的两个jar包。
提示:该项目必须使用log4j,若没有使用过,请查看相关文章。
步骤2:下载以后,把这个jar包放到工程的classpath下面。若是web项目,则放在web-inf/lib目录下面。
步骤3:在log4j.properties文件中,添加如下代码:
log4j.logger.net.sourceforge.jdbclogger=DEBUG
步骤4:另外,在src文件夹下面建立一jdbclogger.properties文件,内容如下:
jdbclogger.driver=org.hsqldb.jdbcDriver
提示:不同的数据库采用不同的数据库驱动程序,这里jdbclogger.driver的值就是你的数据库驱动程序。
步骤5:最后一步,在应用程序中使用jdbc driver class的时候,使用如下驱动程序:
net.sourceforge.jdbclogger.JdbcLoggerDriver
提示:这个是固定的,与具体数据库无关。
OK。下面测试一下,就能看到jdbc logger输出的日志了。
相关文档:
在网上找了很多,总是不知道怎么用,于是自己写了一个:
declare @strHex char(5),
@len int,
@intOut int,
@i int,
@charint int
set @strHex = '20'
set @len = len(rtrim(@strHex))
set @i = 1
set @intOut = 0
while @i <= @len
begin
set @charint = case substring(upper(rtrim(ltrim(@strHex))) ......
开启各种服务
@NET stop SQLSERVERAGENT
@NET stop MSSQLServerOLAPService
@NET stop msftesql
@NET stop MsDtsServer
@NET stop SQLWriter
  ......
昨天我说,用组合索引优化SQL,并不是最优的,这是因为在8亿的表上面有个等价的物化视图,这个物化视图可以代替我在之前在表上面建立的组合索引。
SQL> explain plan for SELECT distinct * from (select
2 (PROD_9005_GDF_WK_SS_FDIM.PROD_4_NAME),
3 PROD_9005_GDF_WK ......
SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) from table_name1
UNION
SELECT column_name(s) from table_na ......