给新手的索引查询示例
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ssbird.blog.51cto.com/277690/59903 |
使用索引是数据库优化里最重要的一种手段,今天通过一个简单的例子介绍建立索引查询的方法,希望能给刚入门的新手带来一点帮助。关于索引的基础知识,这里不多做介绍,有不清楚的可以参考一下这篇文章(Sql Server数据库中的索引)或是互联网上的相关资料。 首先,创建一个简单的数据库DBTest,并为其创建一个表IndexTest,添加几个字段MainID(主键),Title,Content,CreateDate。 第二步,为IndexTest表的Title字段创建一个索引,创建索引有两种方式,一是通过企业管理器进行创建,二是使用查询分析器。 1、使用企业管理器创建索引; 右键选中DBTest数据库中的IndexTest表,选择所有任务->管理索引,将会弹出一个新的对话框。 ![]() 大家可以看到,Sql Server已经为表中的主键创建了一个聚集索引。点击新建,为Title字段创建一个索引Index_Title. ![]() 2、使用查询分析器 如果熟悉SQL语言,利用查询分析器可以更快的创建索引,只需在查询分析器中输入以下代码,点击执行即可,得到的结果与上面的方法完全相同。 use DBTest go /*-- 检测索引是否已经存在 --*/ if exists( select name from sysindexes where name = 'Index_Title') drop index IndexTest.Index_Title /*-- 为Title字段创建索引 --*/ create nonclustered index Index_Title on IndexTest(Title) with fillfactor = 50 go 第三步,编写测试程序,该程序使用C#进行编写,在Visual Studio 2005中测试通过。首先新建一个Windows应用程序,在窗体中添加一个TextBox、一个RichTextBox和一个按钮,双击按钮添加事件处理程序: string strConnection = "Server=(local);initial catalog=DBTest;user id=sa;password=sa;Connect Timeout=30"; SqlConnection conn = new SqlConnection(strConnection); string key = this.keyWord.Text; string cmdText = "Select * From IndexTest Where Title Like '%"+key+"%'"; SqlCommand command = new SqlCommand(cmdText,conn); try { conn.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { textContext.AppendText(reader["Content"].ToString()); } } catch(Exception ex) { MessageBox.Show(ex.ToString()); } 一个使用索引查询的示例就这样完成了,是不是感觉很轻松?在实际的项目中,代码不会写得这样简单,但基本方法不会改变,有兴趣的朋友可以参照此例为CreateDate字段建立一个索引。如果你不嫌麻烦,可以给这个表添加上几万行数据(一个循环就可以搞定),然后对比一下使用索引前和使用后数据库查询的速度差距,加深对索引的理解。 本文出自 “在路上...” 博客,请务必保留此出处http://ssbird.blog.51cto.com/277690/59903 本文出自 51CTO.COM技术博客 |





string strConnection = "Server=(local);initial catalog=DBTest;user id=sa;password=sa;Connect Timeout=30";
ssbird
博客统计信息
热门文章
最新评论
友情链接