以下是引用yytx11在2017-9-9 14:23:05的发言:
就是在SQL中查询,是不需要事先做索引的。谢谢
就是在SQL中查询,是不需要事先做索引的。谢谢
话不能说绝,一切从实际出发。
个人认为,实际应用中索引是无处不在的。
对于一些变动不大、相对固定的数据,如代码库、字典库,这类数据可以在数据增删改时打开索引同时自动维护索引。
对于一些经常变动,一次变动的数据记录多,这类数据可以在数据增删改时不打开索引,等数据记录处理完毕后,定时或适当时候(空闲时)自动维护索引。
对于使用临时索引,因临时创建索引要耗费时间,特别是处理大量数据记录的时候,这时要考虑是否有必要使用索引,要视实际情况采用怎样的命令代码来处理,从而获取更高的运行效率。
如:
Create Table TestTable (pk I Autoinc, Sometext C(20))
FOR i=1 TO 100000
Insert Into TestTable (Sometext) Values ("One")
Insert Into TestTable (Sometext) Values ("Two")
Insert Into TestTable (Sometext) Values ("Three")
ENDFOR
t=SECONDS()
Select TestTable
Index on Upper(Sometext) tag Sometext
Set Order To
? "建临时索引耗时:", SECONDS() - t
t=SECONDS()
Select Sometext, pk From TestTable Where Upper(Sometext) = "ONE" into cursor crsResult
? "使用索引耗时:", SECONDS() - t
Select TestTable
DELETE TAG ALL
t=SECONDS()
Select Sometext, pk From TestTable Where Upper(Sometext) = "ONE" into cursor crsResult
? "不使用索引耗时:", SECONDS() - t