① 数据库技术,关联,聚类,分类有哪些方法
通常,为有监督分类提供若干已标记的模式(预分类过),需要解决的问题是为一个新遇到的但无标记的模式进行标记.在典型的情况下,先将给定的无标记的模式用来学习〔训练),反过来再用来标记一个新模式.聚类需要解决的问题是将已给定的若千无标记的模式聚集起来使之成为有意义的聚类.从某种意义上说,标一记也与聚类相关,但这些类型的标记是由数据驱动的,也就是说,只是从数据中得到这些标记.聚类与数据挖掘中的分类不同,在分类模块中,对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来:与此相似但又不同的是,聚类是在预先不知道目标数据库到底有多少类的情况下,希望将所有的记录组成不同的类或者说“聚类”,并且使得在这种分类情况下,以某种度量为标准的相似性,在同一聚类之间最小化,而在不同聚类之间最大化.事实上,聚类算法中很多算法的相似性都是基于距离的,而且由于现实数据库中数据类型的多样性,关于如何度量两个含有非数值型字段的记录之间的距离的讨论有很多,并提出了相应的算法.在很多应用中,聚类分析得到的每一个类中的成员都可以被统一看待.
② 在sqlServer中使用索引的技巧
在SQL Server中 为了查询性能的优化 有时我们就需要对数据表通过建立索引的方式 目的主要是根据查询要求 迅速缩小查询范围 避免全表扫描
索引有两种类型 分别是聚集索引(clustered index 也称聚类索引 簇集索引)和非聚集索引(nonclustered index 也称非聚类索引 非簇集索引)
聚集索引在一个表中只能有一个 默认情况下在主键建立的时候创建 它是规定数据在表中的物理存储顺序 我们也可以取消主键的聚集索引 所以必须考虑数据库可能用到的查询类型以及使用的最为频繁的查询类型 对其最常用的一个字段或者多个字段建立聚集索引或者组合的聚集索引 它就是SQL Server会在物理上按升序(默认)或者降序重排数据列 这样就可以迅速的找到被查询的数据
非聚集索主要是数据存储在一个地方 索引存储在另一个地方 索引带有指针指向数据的存储位置 索引中的项目按索引键值的顺序存储 而表中的信息按另一种顺序存储 可以在一个表格中使用高达 个非聚集的索引 在查询的过程中先对非聚集索引进行搜索 找到数据值在表中的位置 然后从该位置直接检索数据 这使非聚集索引成为精确匹配查询的最佳方法 因为索引包含描述查询所搜索的数据值在表中的精确位置的条目
所以我们在选择创建聚集索引的时候要注意以下几个方面
) 对表建立主键时 就会为主键自动添加了聚集索引 如自动编号字段 而我们没有必要把聚集索引浪费在主键上 除非你只按主键查询 所以会把聚集索引设置在按条件查询频率最高的那个字段或者组合的字段
) 索引的建立要根据实际应用的需求来进行 并非是在任何字段上建立索引就能提高查询速度 聚集索引建立遵循下面几个原则
包含大量非重复值的列
使用下列运算符返回一个范围值的查询 BEEEN > >= < 和 <=
被连续访问的列
返回大型结果集的查询
经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说 这些是外键列 对ORDER BY 或 GROUP BY 子句中指定的列进行索引 可以使 SQL Server 不必对数据进行排序 因为这些行已经排序 这样可以提高查询性能
OLTP 类型的应用程序 这些程序要求进行非常快速的单行查找(一般通过主键) 应在主键上创建聚集索引
举例来说 银行交易日志中对交易日期建立聚合索引 数据物理上按顺序存于数据页上 重复值也排列在一起 因而在范围查找时 可以先找到这个范围的起末点 且只在这个范围内扫描数据页 避免了大范围扫描 提高了查询速度 而如果我们对员工的基本信息表中性别的字段列上建立聚集索引 就完全没有必要 因为内容里只涉及到 男 与 女 两个不同值
) 在聚集索引中按常用的组合字段建立索引 形成复合索引 一般在为表建立多个主键的时候就会产生 如果一个表中的数据在查询时有多个字段总是同时出现则这些字段就可以作为复合索引 这样能形成索引覆盖 提高where语句的查询效率
)索引对查询有一这的优化 但由于改变一个表的内容 将会引起索引的变化 频繁的对数据操作如insert update delete语句将导致系统花费较大的代价进行索引更新 引起整体性能的下降 一般来讲 在对查询性能的要求高于对数据维护性能要求时 应该尽量使用索引 有时在这种操作数据库比较频繁的某些极端情况下 可先删除索引 再对数据库表更新大量数据 最后再重建索引 新建立的索引总是比较好用
索引在使用了长久的时候 就会产生很多的碎片 查询的性能就会受到影响 这时候有两种方法解决 一是利用DBCC INDEXDEFRAG整理索引碎片 还有就是利用DBCC DBREINDEX重建索引
DBCC INDEXDEFRAG 命令是联机操作 所以索引只有在该命令正在运行时才可用 而且可以在不丢失已完成工作的情况下中断该操作 这种方法的缺点是在重新组织数据方面没有聚集索引的除去/重新创建操作有效
重新创建聚集索引将对数据进行重新组织 其结果是使数据页填满 填满程度可以使用 FILLFACTOR 选项进行配置 这种方法的缺点是索引在除去/重新创建周期内为脱机状态 并且操作属原子级 如果中断索引创建 则不会重新创建该索引
我们来看看索引重建使用的方法
语法 DBCC DBREINDEX ( [ TableName [ index_name [ fillfactor ] ] ] )
参数 TableName
是要重建其指定的索引的表名 数据库 所有者和表名必须符合标识符的规则 有关更多信息 请参见使用标识符 如果提供 database 或 owner 部分 则必须使用单引号 ( )
将整个 database owner table_name 括起来 如果只指定 table_name 则不需要单引号
index_name 是要重建的索引名 索引名必须符合标识符的规则 如果未指定 index_name 或指定为 就要对表的所有索引进行重建
fillfactor 是创建索引时每个索引页上要用于存储数据的空间百分比 fillfactor替换起始填充因子以作为索引或任何其它重建的非聚集索引(因为已重建聚集索引)的新默认值 如果 fillfactor 为 DBCC DBREINDEX 在创建索引时将使用指定的起始fillfactor
我们在查询分析器中输入如下的命令
DBCC DBREINDEX ( MyTable )
lishixin/Article/program/SQLServer/201311/22210
③ 将两个表联系之后怎样用sql实现k均值聚类
两个表关联只是用来获取想要处理的数据。和单表获取数据一样。
聚类实现需要使用聚合函数:sum,avg,min,max等。
举例:
select id,avg(b.price)
from a
inner join b
on a.id=b.id
④ sql server 索引 全文索引和聚类索引的区别
http://wenku..com/view/22ee60d376a20029bd642d75.html
看看文档吧,有些东西需要耐心看下。
全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询。 全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中。 全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的。 生成全文索引的过程不同于生成其他类型的索引。 全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排、堆积且压缩的索引结构。全文索引大小仅受运行 SQL Server 实例的计算机的可用内存资源限制。
从 SQL Server 2008 开始,全文索引与数据库引擎集成在一起,而不是像 SQL Server 早期版本那样位于文件系统中。对于新数据库,全文目录现在为不属于任何文件组的虚拟对象;它仅是一个表示一组全文索引的逻辑概念。 然而,请注意,在升级 SQL Server 2005 数据库(即包含数据文件的任意全文目录)的过程中,将创建一个新文件组。
⑤ 在SQL中怎样用指定索引查询
一般来说在条件中使用索引对应的第一个字段就可能会用到该索引。
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。
索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。
数据搜索实现角度
索引也是另外一类文件/记录,它包含着可以指示出相关数据记录的各种记录。其中,每一索引都有一个相对应的搜索码,字符段的任意一个子集都能够形成一个搜索码。这样,索引就相当于所有数据目录项的一个集合,它能为既定的搜索码值的所有数据目录项提供定位所需的各种有效支持。
以上内容参考:网络-数据库索引
⑥ sql数据挖掘插件如何聚类
聚类算法是使用非常多的一种算法,它的作用是对数据进行分组,将特征相近的实体组织在一起,以便帮助我们对于目标实体分类决策。典型的情况,例如人口分析,客户分析。
聚类算法大致的效果如下(下面的分类名都可以修改,定义成我们更加容易理解的,例如“金牌客户”,“银牌客户”等等)
⑦ sql的一个聚类查询
select SJ,COUNT(av1TestCount1) as av1TestCount1,COUNT(av1Pass) as av1Pass,case when COUNT(av1TestCount1)>0 then str(COUNT(av1Pass)*100.0/COUNT(av1TestCount1),6,2)+'%' else '' end as av1yield,
COUNT(av2TestCount1) as av2TestCount1,COUNT(av2Pass) as av2Pass,case when COUNT(av2TestCount1)>0 then str(COUNT(av2Pass)*100.0/COUNT(av2TestCount1),6,2)+'%' else '' end as av2yield
from (select case when 测试时间<=CAST(DATEADD(HOUR,-4,GETDATE()) as time) then CONVERT(char(8),DATEADD(HOUR,-5,GETDATE()),108)+'~'+CONVERT(char(8),DATEADD(HOUR,-4,GETDATE()),108)
when 测试时间<=CAST(DATEADD(HOUR,-3,GETDATE()) as time) then CONVERT(char(8),DATEADD(HOUR,-4,GETDATE()),108)+'~'+CONVERT(char(8),DATEADD(HOUR,-3,GETDATE()),108)
when 测试时间<=CAST(DATEADD(HOUR,-2,GETDATE()) as time) then CONVERT(char(8),DATEADD(HOUR,-3,GETDATE()),108)+'~'+CONVERT(char(8),DATEADD(HOUR,-2,GETDATE()),108)
when 测试时间<=CAST(DATEADD(HOUR,-1,GETDATE()) as time) then CONVERT(char(8),DATEADD(HOUR,-2,GETDATE()),108)+'~'+CONVERT(char(8),DATEADD(HOUR,-1,GETDATE()),108)
else CONVERT(char(8),DATEADD(HOUR,-1,GETDATE()),108)+'~'+CONVERT(char(8),GETDATE(),108) end as SJ,
case when 类型='av1' then 类型 end av1TestCount1,
case when 类型='av1' and 结果='pass' then 结果 end av1Pass,
case when 类型='av2' then 类型 end av2TestCount1,
case when 类型='av2' and 结果='pass' then 结果 end av2Pass
from 表) A
group by SJ
⑧ idea的sql query plugin插件怎么用
1、Identifier Highlighter 高亮显示选中变量插件(idea14报错无法使用)
不安装插件的时的快捷键是选中这个变量然后按Ctrl+F7
idea默认的选中变量以后,是不会像eclipse一样提示这个变量用到的地方的。安装这个插件以后既可以和eclipse一 样啦
2、Key Promoter 快捷键提示插件
当你点击鼠标一个功能的时候,可以提示 你这个功能快捷键是什么 ,和这个按钮你的使用频率
3、Jrebel 热部署插件
MyEclipse10和2014 都是默认debugger模式 支持热部署的。
而idea需要你安装这个插件才会支持热部署,所以也算个遗憾吧
4、FindBugs for IntelliJ IDEA,
通过FindBugs帮你找到隐藏的bug及不好的做法。
5、TabSwitch 通过ctrl + tab在文件,各个面板tab间切换。
6、Mybatis 插件
7、UpperLowerCapitalize 大小写转换插件
安装后快捷键alt+P全部大写 alt+L全部小写 alt+C开头字母大写
8、generate serialversionuid 生成uuid 的插件
安装后快捷键 alt+insert
9、sql query plugin 数据库插件(这个13版本已经自带了database插件,比这个好用。可以不安装了)
默认快捷键是ctrl+alt+v ,但是和其他的快捷键冲突了, 建议修改为ctrl+等号
10、idea vim 模拟Linux下 vi编辑器的插件支持vi的命令
11、generateO2O 自动对象转换插件。
方法体内可以生成对应的get set方法把一个对象对等拷贝到另一个对象里 快捷键 alt+insert
12、IdeaJad 反编译插件
13、EncodingPlugin 可按项目指定其默认编码,非常有用
14、Equals and hashCode 重写equals和hashcode方法的自定义模板
15、unitTest 在指定的方法上按下shift + cmd + t 即可为这个方法生成单元测试代码模板。
16、FileBrowser 在IDEA中查看项目外的文件 (目前13.1.2以上好像不支持不知道其他人怎么样)
17、GenerateToString 自动生成toString方法, toString方法是可定制的