Я не уверен насчет некоторых из SQL Server
специфических c бит (сжатие, кластеризация, первичный), но это даст вам начало:
CREATE TABLE Eqp.t_WSTCPEStairstep (
SysID SMALLINT,
PrinID SMALLINT,
Account BIGINT NOT NULL,
Order_No BIGINT NOT NULL,
Order_Typ VARCHAR(1),
Eqp_Serial VARCHAR(25),
Eqp_Typ VARCHAR(2),
Eqp_Model VARCHAR(9) ,
Disco_Dte DATE,
Return_Dte DATE,
Restart_Dte DATE,
Lost_Dte DATE,
TestFlag SNALLINT
)
PRIMARY INDEX(col1, col2, ...);
-- Indexes
CREATE INDEX ix_WSTCPEStairstepDiscoDteIndex (Disco_Dte) ON Eqp.t_WSTCPEStairstep;
CREATE INDEX ix_WSTCPEStairstepSPAIndex (SysID, Account) ON Eqp.t_WSTCPEStairstep;
Какой столбец (столбцы) вы используете для доступа к данным в этой таблице? Если они обеспечивают равномерное распределение (т.е. в основном различные значения), укажите их как поля PRIMARY INDEX
. И если эти поля уникальны, еще лучше - UNIQUE PRIMARY INDEX
. Возможно, это один из указанных вами индексов - disco_dte
или (SysID, Account)
.
Еще несколько примечаний:
- столбцы должны быть NULLABLE по умолчанию
- если
TestFlag
составляет всего 1/0, вы можете использовать тип данных BYTEINT
- вы можете преобразовать
VARCHAR(1)
и VARCHAR(2)
в CHAR
- для сжатия, вы можете добавить это на нескольких уровнях, но я думаю, что чаще всего это на уровне столбца