On May 30, 2012, at 7:38 AM, Christian Klinger wrote:
> Hi,
>
> Hi i use sqlalchemy to map an existing oracle table to my class via the
> declarative syntax. One of the columns is indexed.
>
> Do i understand it correctly to only specify the index in my Column?
>
> class Example(...)
> mnr = Column("MNR", String(12), primary_key=True, index=True)
>
>
> And how can i check if the index is used in a select? Do i see it with
> echo=True?
an index in SQL is a construct that is specified using a CREATE statement, and
only once for that database, in the same way the CREATE statement is used for a
table.
If you are using your declarative models to emit the CREATE statements to your
Oracle database, with index=True you will also see a corresponding CREATE INDEX
in the DDL that is emitted.
If you are *not* emitting CREATE statements, and your Oracle database already
has an existing schema, then the index=True flag has no effect. It is only
meaningful when CREATE statements are emitted.
To see if your SELECT is using particular indexes, you'd want to view the query
plan, which you get by using EXPLAIN. See
http://docs.oracle.com/cd/B10500_01/server.920/a96533/ex_plan.htm for
background on this specific to Oracle.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.