导航:首页 > 源码编译 > 怎么消除索引编译时间

怎么消除索引编译时间

发布时间:2022-09-12 16:55:10

⑴ mysql索引优化的规则注意事项

常见的简化规则如下:

1)不要有超过5个以上的表连接(JOIN)
2)考虑使用临时表或表变量存放中间结果。
3)少用子查询
4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜。
连接的表越多,其编译的时间和连接的开销也越大,性能越不好控制。最好是把连接拆开成较小的几个部分逐个顺序执行。优先执行那些能够大量减少结果的连接。拆分的好处不仅仅是减少SQL Server优化的时间,更使得SQL语句能够以你可以预测的方式和顺序执行。
如果一定需要连接很多表才能得到数据,那么很可能意味着设计上的缺陷。
连接是outer join,非常不好。因为outer join意味着必须对左表或右表查询所有行。如果表很大而没有相应的where语句,那么outer join很容易导致table scan或index scan。要尽量使用inner join避免scan整个表。
优化建议:

1)使用临时表存放t1表的结果,能大大减少logical reads(或返回行数)的操作要优先执行。 仔细分析语句,你会发现where中的条件全是针对表t1的,所以直接使用上面的where子句查询表t1,然后把结果存放再临时表#t1中:

Select t1….. into #tt1 from t1 where…(和上面的where一样)

2)再把#tt1和其他表进行连接:

Select #t1…
Left outer join …
Left outer join…

3)修改 like 程序,去掉前置百分号。like语句却因为前置百分号而无法使用索引
4)从系统设计的角度修改语句,去掉outer join。
5)考虑组合索引或覆盖索引消除clustered index scan。

上面1和2点建议立即消除了worktable,性能提高了几倍以上,效果非常明显。

⑵ 长虹液晶电视我家出现了左上角软件版本,编译时间,索引6自动搜索的提示,请您详细解答下

你进入了模拟电视模式,并在自动搜索频道模式。如果当地有线电视还有模拟频道就可以被搜索到,如果没有,按遥控器信号源键选择机顶盒所在的信号源即可

⑶ 电视机左上角出现索引编译时间等怎么消除

这个是进入了系统总线,可能是存储器数据错乱或是遥控器乱按巧合按到了。退出总线系统,要电视机型号。

⑷ 长虹等离子液晶电视开机屏幕上出现M软件版本和编泽时间及索引,请问怎样处理才能正常

长虹电视机屏幕上出现M字一般是表示电视机已经进入了工厂老化模式,只要退出该模式即可恢复正常。方法如下:
1、将遥控器对准电视机,按住待机键不放,坚持3秒钟左右,红色的M字就会变成绿色,松开按键就可以退出工厂老化模式;此时M字也会自动消失。
2、如果以上方法不能解决问题时,建议联系电视机的售后服务,告知故障表现,由其指导操作解决该问题;或者由其安排专业技术人员上门为用户调试、解决问题。

⑸ 如何索引 时间类型的索引的Series

Oracle中我们经常使用Date字段类型记录日期和时间,有的时候还在这个字段上建立索引。
然后通过java程序访问数据库的时候,我们很自然的类似这样使用:select * from table where endDate>? and endDate<?,然后通过PreparedStatement预编译,再通过setTimestamp传入由java.util.Date转成java.sql.Timestamp的参数(因为java.sql.Date只有日期,java.sql.Time只有时间,所以我们只能用java.sql.Timestamp类型)。我们会认为这样应该走索引区间扫描,效率应该是非常高的。

而事实上,Oracle会把sql解释成如下这样来执行:select * from table where TO_TIMESTAMP(endDate)>? and TO_TIMESTAMP(endDate)<?; 为什么?因为传入的参数是timestamp类型,Oracle从9.2版本以后支持这种类型,所以Oracle做了这样的转换,结果就是这个SQL执行变成了全表扫描。我们做的试验,加了一个index hint,强制走时间索引字段,结果效率也不高,sql执行变成了全索引扫描,和全表扫描没多大区别。结果效率还是低。

不光直接使用JDBC会是这样,Spring,iBatis在处理传入参数是java.util.Date类型的时候,都会使用setTimestamp设定参数,所以都需要注意。

解决办法(四种解决办法,推荐方案一):
1.sql修改成这样:select * from table where endDate>to_date(?,’yyyymmddhh24miss’) and endDate<to_date(?,’yyyymmddhh24miss’);然后将传入参数格式化成对应格式的字符串在传入,这样由Oracle将字符串转成Date类型,就很顺利的走索引区间扫描,效率最高。

2.在建立数据库连接的时候增加一个属性oracle.jdbc.V8Compatible=true,代码如下:
Properties prop=new Properties();
prop.setProperty(“user”,”****”);
prop.setProperty(“password”,”****”);
prop.setProperty(“oracle.jdbc.V8Compatible”,”true”);
Connection connection = DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:test”, prop);
连接池也根据各自的配置方式增加这个属性即可。目前看来这个属性参数是处理时间映射关系的,但是还不确定它是否会带来其他的问题,所以要慎重使用。

⑹ mysql 创建索引后,为什么执行时间变长

在数据量太小的情况,建立索引确实有可能比没有建前费时。索引的使用,一般是应用在对大量数据查询中,如果都能数得过来,没必要建。
给你举个例子,就像汽车与人赛跑,前三秒可能车跑不过人,如果你设置的比赛距离就是30米,那汽车发挥不出它的优势,并且表现出来的效果可能还不如人跑的速度快。

⑺ 怎么停止idea 创建索引时间过长

可能是Windows Vista中内置的索引器停止工作了。这时,在Outlook 的“工具->即时搜索->搜索选项”菜单中的状态信息使得系统仍会在所有的邮箱中进行先前项目的搜索。 可以试下以下方法,不敢保证一定行: 1. 关闭Microsoft Outlook。 2. 打开Vista...

⑻ 索引器怎么删除

加快或禁用Windows Vista的搜索索引中
The new indexing service built into Windows Vista has been the subject of a lot of complaints, since it seems to kick in at strange times and thrash your hard drive.新的索引服务建立在Windows Vista中一直受到了很多投诉,因为它似乎开始在陌生的时间和鞭打你的硬盘。 So what can we do to speed this up?因此,我们可以做些什么,以加速这一行动?

There's two options: You can either trim down the amount of files that Windows Search is indexing, or you can disable it entirely if you never use the search.有两种选择:您可以削减数额的文件的Windows搜索索引,或者您也可以禁用它完全如果您从未使用搜索。

Trim Down Indexing Locations 削减索引位置

The best way to trim down the amount of processor time the indexing service uses is by trimming down the amount of files being indexed.最好的方式削减数额处理器时间使用索引服务是修剪下来的金额被编入索引的文件。 For instance, if you don't regularly search through your C: drive, there's really no need to be indexing it.例如,如果你不经常查找您的C :盘,但真的没有必要将它的索引。

Personally, I love the search function for Outlook and the Start Menu, but that's the only places I care about indexing.就个人而言,我喜欢的搜索功能可以用于Outlook和开始菜单上,但这是唯一的地方我关心的索引。

Type Indexing into the control panel search or the start menu search box, and you should see an item called Indexing Options.类别索引到控制面板搜索或开始菜单的搜索框,你应该会看到一个项目叫做索引选项。

Here you can see the current list of locations that are being indexed.在这里您可以看到当前的位置清单正在索引。 For instance, I only index the start menu and Outlook.举例来说,我只指数开始菜单和Outlook 。 If you want to modify or remove locations, use the Modify button.如果要修改或删除的位置,使用修改按钮。

All you have to do to remove a location from being indexed is uncheck the box.您需要做的要删除的位置被编入索引是取消勾选。 You might have to click the Show All Locations button to see some of the default locations.您可能必须单击显示所有地点的按钮,看到一些默认位置。

If you wanted to remove the start menu indexing, you'll need to click on Start Menu in the summary list at the bottom, and it'll automatically navigate to the item in the tree.如果您要删除开始菜单上的索引,您需要点击开始菜单中的摘要清单底部,它会自动定位到该项目中的树。

The start menu indexing really doesn't take much processing time though, so I wouldn't bother removing that.开始菜单索引确实没有太多的处理时间,因此我不会消除这一烦恼。

Completely Disable Indexing 完全禁用索引

If you'd prefer to completely disable the indexing service, you can disable it entirely by turning off the service.如果您希望完全禁用索引服务,您可以禁用它完全关闭该服务。

Open up Services through control panel, or by typing services.msc into the start menu search box.打开服务控制面板,或通过键入services.msc到开始菜单的搜索框。 Find "Windows Search" in the list of services and double-click on it to open it.找到“ Windows搜索”列表中的服务,并双击它来打开它。

Change the Startup type of the service to Disabled, and then click the Stop button to stop the service.更改启动类型的服务禁用,然后单击停止按钮来停止该服务。

⑼ 如何加快建 index 索引 的时间

一. 先来看一下创建索引要做哪些操作:
1. 把index key的data 读到内存
==>如果data 没在db_cache 中,这时候很容易有大量的db file scatter read wait

2. 对index key的data 作排序
==>sort_area_size 或者pga_aggregate_target 不够大的情况下,需要做 disk sort, 会有大量的driect path read/write , 另外,消耗大量CPU Time

3. 创建新的index segment , 把排过序的index data 写到所创建的index segment 里面
==>如果index 很大,那么,有时也会有redo log 相关等待,如:
log buffer space ,log file sync , log file parallel write 等
所以,在建大表索引时,可以增大pga,增大temp tablepace,并且用nologging或并行选项。
如:
create index idx_logs on logs(time) nologging parallel 4;
并行度一般看CPU 个数。当然在CPU 比较空闲的情况下可以多并行几个。对于单CPU 不建议用并行,这样反而会增加创建时间。也可以根据v$session_wait 的资料,做针对性的tuning , 这样可以降低点时间。
补充知识:
查看cpu 信息:more /proc/cpuinfo
查看内存信息:more /proc/meminfo
查看操作系统信息:more /etc/issue
有关索引概念性的东西,请参考我的Blog:
Oracle 索引 详解
http://blog.csdn.net/tianlesoftware/archive/2010/03/05/5347098.aspx

二. 测试
自己也测试了下。测试环境:Oracle 11g R2, win7 64bit ,CPU T6670 2.2G 双核, 内存:4G。
1. 查看表的数据量:
SQL> select count(*) from custaddr;
COUNT(*)
----------
7230464
2. 查看现有索引:
SQL> select index_name,index_type from user_indexes where table_name='CUSTADDR';
INDEX_NAME INDEX_TYPE
------------------------------ ---------------------------
PK_CUSTADDR_TP_723 NORMAL
IX_CUSTADDR_ADDRABB_TP NORMAL
IX_CUSTADDR_TEAMID_TP NORMAL
IX_CUSTADDR_CUSTID_TP NORMAL
IX_CUSTADDR_COMPABB_TP NORMAL
IX_CUSTADDR_AREACODE NORMAL
IX_CUSTADDR_ADDR_TP NORMAL
已选择7行。
3. 删除索引:IX_CUSTADDR_CUSTID_TP

SQL> drop index IX_CUSTADDR_CUSTID_TP ;
索引已删除。
4. 默认方式创建索引:

SQL> SET timing on;
SQL> CREATE INDEX IX_CUSTADDR_CUSTID_TP ON CUSTADDR (CUSTID );
索引已创建。
已用时间: 00: 00: 48.37
单位:s
5. 用nologging 模式:
SQL> drop index IX_CUSTADDR_CUSTID_TP ;
索引已删除。
已用时间: 00: 00: 00.09
SQL> CREATE INDEX IX_CUSTADDR_CUSTID_TP ON CUSTADDR (CUSTID ) NOLOGGING;
索引已创建。
已用时间: 00: 00: 34.46
6. Nologging+ parallel 模式
SQL> drop index IX_CUSTADDR_CUSTID_TP ;
索引已删除。
已用时间: 00: 00: 00.17
SQL> CREATE INDEX IX_CUSTADDR_CUSTID_TP ON CUSTADDR (CUSTID ) NOLOGGING PARALLEL 2;
索引已创建。
已用时间: 00: 00: 52.56
SQL> drop index IX_CUSTADDR_CUSTID_TP ;
索引已删除。
已用时间: 00: 00: 00.07
SQL> CREATE INDEX IX_CUSTADDR_CUSTID_TP ON CUSTADDR (CUSTID ) NOLOGGING PARALLEL 4;
索引已创建。
已用时间: 00: 00: 53.44
看来在单CPU上,并行效果还不好.
7. Parallel 模式
SQL> drop index IX_CUSTADDR_CUSTID_TP ;
索引已删除。
已用时间: 00: 00: 00.02
SQL> CREATE INDEX IX_CUSTADDR_CUSTID_TP ON CUSTADDR (CUSTID ) PARALLEL 2;
索引已创建。
已用时间: 00: 00: 49.97
SQL> drop index IX_CUSTADDR_CUSTID_TP ;
索引已删除。
已用时间: 00: 00: 00.02
SQL> CREATE INDEX IX_CUSTADDR_CUSTID_TP ON CUSTADDR (CUSTID ) PARALLEL 4;
索引已创建。
已用时间: 00: 00: 50.25

从上面的测试数据可以看出,700万的数据,建索引,也在1分钟以内。 但是并行在单CPU上效果不明显,而且比光使用NOLOGGING还要慢,因为出现资源争用了,可能是CPU的争用,也可能是I/O的争用。

阅读全文

与怎么消除索引编译时间相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:766
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:841
安卓怎么下载60秒生存 浏览:800
外向式文件夹 浏览:233
dospdf 浏览:428
怎么修改腾讯云服务器ip 浏览:385
pdftoeps 浏览:490
为什么鸿蒙那么像安卓 浏览:733
安卓手机怎么拍自媒体视频 浏览:183
单片机各个中断的初始化 浏览:721
python怎么集合元素 浏览:478
python逐条解读 浏览:829
基于单片机的湿度控制 浏览:496
ios如何使用安卓的帐号 浏览:880
程序员公园采访 浏览:809
程序员实战教程要多长时间 浏览:972
企业数据加密技巧 浏览:132
租云服务器开发 浏览:811
程序员告白妈妈不同意 浏览:333
攻城掠地怎么查看服务器 浏览:600