一 表结构:(只拣有用的说了!)1.交易流水表(TVA):
ID 主键
TERMINALID 终端机编号
2.终端机表(TEM)
TERMID 主键
DPCODTE 商户编号
3.商户表(ACC)
ACCID 主键
ACCNAME 商户名称(不知道为啥非整这么麻烦的表结构.....)二 SQL select tva.id , tva.tem.acc.accname from TVA where 1=1 ;不知道为啥非整这么麻烦的表结构.....我想查交易流水的时候关联查出来所对应的商户名称 三 HIBERNATE 配的 *.hbm.xml 1.TVA.HBM.XML<class name="com.TVA" table="TVA">
<id name="id" column="id" length="10">
<generator class="sequence">
<param name="sequence">SEQ_TVALIDTR</param>
</generator>
</id>
<many-to-one name="tem" column="terminalid"
class="com.TEM" not-found="ignore" insert="false" update="false" not-null="false">
</many-to-one>
2.TERM.HBM.XML<class name="com.TEM" table="TEM">
<id name="termid" column="Termid" length="8">
<generator class="native" />
</id> <many-to-one name="acc" column="dptcode" class="com.ACC"
not-found="ignore" insert="false" update="false" not-null="false">
</many-to-one> 3 ACC.HBM.XML<class name="com.ACC" table="acc">
<id name="accid" column="accid" length="8">
<generator class="native" />
</id>
<property name="accname" column="Accname"
type="java.lang.String" update="true" insert="true" not-null="false"
length="100" />简单的说就是 通过表TVA中的termianlid查找到表TEM中的记录,然后通过表TEM中的dpcode查找到ACC中的accname字段 ……四 问题现在交易流水表中有450万条记录 …… 程序跑起来十分的慢 …… 请问有没有什么方法在不改表结构的前提下 对它进行优化 !!热烈期盼中 …… 谢谢 !!!!!!!!!!!
ID 主键
TERMINALID 终端机编号
2.终端机表(TEM)
TERMID 主键
DPCODTE 商户编号
3.商户表(ACC)
ACCID 主键
ACCNAME 商户名称(不知道为啥非整这么麻烦的表结构.....)二 SQL select tva.id , tva.tem.acc.accname from TVA where 1=1 ;不知道为啥非整这么麻烦的表结构.....我想查交易流水的时候关联查出来所对应的商户名称 三 HIBERNATE 配的 *.hbm.xml 1.TVA.HBM.XML<class name="com.TVA" table="TVA">
<id name="id" column="id" length="10">
<generator class="sequence">
<param name="sequence">SEQ_TVALIDTR</param>
</generator>
</id>
<many-to-one name="tem" column="terminalid"
class="com.TEM" not-found="ignore" insert="false" update="false" not-null="false">
</many-to-one>
2.TERM.HBM.XML<class name="com.TEM" table="TEM">
<id name="termid" column="Termid" length="8">
<generator class="native" />
</id> <many-to-one name="acc" column="dptcode" class="com.ACC"
not-found="ignore" insert="false" update="false" not-null="false">
</many-to-one> 3 ACC.HBM.XML<class name="com.ACC" table="acc">
<id name="accid" column="accid" length="8">
<generator class="native" />
</id>
<property name="accname" column="Accname"
type="java.lang.String" update="true" insert="true" not-null="false"
length="100" />简单的说就是 通过表TVA中的termianlid查找到表TEM中的记录,然后通过表TEM中的dpcode查找到ACC中的accname字段 ……四 问题现在交易流水表中有450万条记录 …… 程序跑起来十分的慢 …… 请问有没有什么方法在不改表结构的前提下 对它进行优化 !!热烈期盼中 …… 谢谢 !!!!!!!!!!!
SQL 写少了 应该是 select tva.id , tva.tem.acc.accname from TVA tva where 1=1 ; tva是TVA类 的同义词
tem是<many-to-one name="tem" column="terminalid" ……
acc是<many-to-one name="acc" column="dptcode" class="com.ACC"