如何为我的表创建索引?

时间:2011-09-05 08:00:16

标签: sql indexing sybase-ase

我有一张格式如下的表格。而且我也知道最常用的sql,所以我的问题是如何在我的表上创建索引,因此这个SQL查询可以有最好的性能。顺便说一句,我的数据库是sybase ASE 12.5。

表t: bu,name,date,score_a,score_b

SQL:

SELECT bu, name, max(score_a), max(score_b)
FROM
t
WHERE date > '20110101' AND date < '20110901'
GROUP BY bu, name

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

基本上你需要为WHERE和GROUP BY子句使用的字段添加索引,所以我会使用代码,bu和name。如何创建索引:
CREATE INDEX index_name ON table_name (column_name);
在你的情况下:
CREATE INDEX idate ON t (date);

答案 1 :(得分:1)

Matino建议的日期索引将确保Sybase只搜索导致结果的行。 由于每行中的所有字段都在查询中使用,因此任何其他索引都无济于事。 加快查询速度的唯一方法是在日期索引中包含所有列。但那通常是矫枉过正的!