I'm developing Pg/PLSQL function for PostgresQL 9.1. When I use variables in a SQL query, optimizer build a bad execution plan. But if I replace a variable by its value the plan is ok.
For instance:

```
v_param := 100;
select count(*)
  into result
  from <some tables>
 where <some conditions>
       and id = v_param

```

performed in 3s

and

```
select count(*)
  into result
  from <some tables>
 where <some conditions>
       and id = 100

```

performed in 300ms

In first case optimizer generate a fixed plan for any value of **v\_param**.

In second case optimizer generate a plan based on specified value and it's significantly more efficient despite not using plan caching.

Is it possible to make optimizer to generate plan without dynamic binding and generate a plan every time when I execute the query?