向大力兄单独提的问题;
大力兄,你的给的文章我看了;
以下是我的表结构,和我要用的SQL语句;
请给于点拨;
我的索引因该怎么键立才能高效;
该表中至少有5千条数据
CREATE TABLE ELOGT_ACCTRAW (
ID INT IDENTITY(1,1),
ACCTTYPE INTEGER NOT NULL,
ACCTID VARCHAR(64) NOT NULL,
NASIP VARCHAR(32) NOT NULL,
NASPORT INTEGER NOT NULL,
USERID VARCHAR(32) NOT NULL,
USERIP VARCHAR(32),
ACCTSTART datetime,
ACCTSTOP datetime DEFAULT 'NOW' NOT NULL,
PRIMARY KEY (ID)
)
CREATE INDEX ININ ON ELOGT_ACCTRAW (USERID, ACCTTYPE, ACCTID, NASIP, NASPORT);
该表中至少有500万条数据
create table T_TCPREC
(
ID INT IDENTITY(1,1),
LOGIP varchar(16) NOT NULL,
TR_SIP varchar(16) NOT NULL,
TR_DIP varchar(16) NOT NULL,
TR_SPORT int,
TR_DPORT int,
TR_SMAC varchar(20),
TR_DMAC varchar(20),
TR_ETHTYPE int,
TR_VLANTYPE int,
TR_VLANID int,
TR_TCPFLAG int,
TR_BEGIN datetime NOT NULL,
TR_LASTRECV datetime,
TR_LASTSEND datetime,
TR_OUTBYTES numeric(18,6),
TR_INBYTES numeric(18,6),
PRIMARY KEY(ID)
);
CREATE INDEX TCPINDEX ON T_TCPREC(LOGIP,TR_BEGIN,TR_SIP,TR_DIP);
CREATE VIEW QUERYTCP
SELECT T.*,P.PROTOCOL,U.USERID FROM T_TCPREC T LEFT JOIN T_PROTOCOL P ON (T.TR_SPORT=P.PORT or T.TR_DPORT=P.PORT) LEFT JOIN ELOGT_ACCTRAW U ON (U.USERIP=T.TR_SIP AND U.ACCTSTART<= T.Tr_Begin AND U.ACCTSTOP>=T.Tr_Begin);
请赐教!
另:我觉得你数据库开发方面绝对是个能手;我很愿意和你交个朋友,来探讨数据库开发方面的问题;