Hi Clinton,

I suppose formatted sql is slow might be caused by database engine waste
time to parse the white space, not only \r,\n,\t, but ' ' as well. And
actually ' ' is more than the other three white in real world.

So I recommend following code,


    public static String tidySql(String sql) {
        String[] values = sql.split("\\n");
        for (int i = 0; i < values.length; i++) {
            values[i] = values[i].trim();
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < values.length; i++) {
            sb.append(values[i]).append(' ');
        }
        return sb.toString();
    }

This code would reduce the size of the formatted sql, and should be helpful.


Best regards,

Jiming


On Tue, Feb 3, 2009 at 3:41 AM, Clinton Begin <clinton.be...@gmail.com>wrote:

> This is a good summary.  I've been watching the other thread.
>
> I think I might have found a possible candidate:
>
> public class SqlText implements SqlChild {
>  //...
>  public void setText(String text) {
>    this.text = text.replace('\r', ' ').replace('\n', ' ').replace('\t', '
> ');
>    this.isWhiteSpace = text.trim().length() == 0;
>  }
>  //...
> }
>
> I'll have to wait to get home to check to see if this is called on
> each execution, instead of just once at SQL mapper build time.
>
> Cheers,
> Clinton
>

Reply via email to