随笔分类 -  javascript

实际工作中遇到的问题,开发环境问题,软件版本问题,软件兼容问题,代码规范问题,设计工具的使用
摘要:透视今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换。假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣,每一种折扣只对应一个产品价格。下面贴出建表语句和插入数据语句。 1 create table SalesOrderDetail( 2 ProductID int /*unique多谢wuu00的提醒*/, 3 UnitPriceDiscount float, 4 ProductPrice float 5 ) 6 insert into SalesOrderDetail values 7 (711,.00,12), 8 (711,.00,13), . 阅读全文
posted @ 2011-07-07 17:23 nd 阅读(4097) 评论(21) 推荐(5) 编辑
摘要:在模糊查找中我们提到脏数据是怎样进入到表中的事情,主要还是由于一些“Lazy-add”造成的。这种情况我们的肉眼很容易被欺骗,看上去是同一个单词,其实就差那么一个字母,变成了两个不同的单词。一个简单的例子是X-Ray Tech和xRey,我们很有可能认为他们是同一个职务,CT操作员,但是如果让计算机来处理的话,它们是两种截然不同的东西。 和模糊查找一样,模糊分组可以查找出多行中出现的类似的单词进行归类。我们可以使用这些归类得到的结果清洗数据源或者在不修改基础数据的情况下对原表进行修改。模糊分组也需要一个输入字符流,还需要一个OLE DB数据连接,用于存放分析得到的结果。模糊分组任务的编辑界面. 阅读全文
posted @ 2011-07-04 22:21 nd 阅读(2475) 评论(2) 推荐(0) 编辑
摘要:BI项目中经常会有一些提取,转换,数据处理(ELT)的工作,其中最主要的是处理过赃数据。假设在项目中我们向数据库中注入了测试数据,但是通过一个外键从另外一个表中载入数据的时候没有对应的数据,那么这一行就是赃数据。这时候可以使用SQL中的Sound-Ex,full-text,相似度算法等方法查找。这种策略需要花费大量的时间和精力来设计算法,测试,维护,并且它们都是基于词汇的,复用的可能性很小。也可能你会放弃自己处理并把它抛给一些有经验的高手专家来做这些工作,也可能你会在表中添加一些新的数据已达到外健关联的目的,但是这种方法被称作Lazy-add(懒惰的做法)。因为是手工添加数据难免会带来拼写错误 阅读全文
posted @ 2011-06-27 21:30 nd 阅读(4783) 评论(11) 推荐(4) 编辑
摘要:和关键词提取一样,关键词查找使用相同的算法和统计模型将输入流中的字符串按照名词或者名词词组进行统计,不同的是它参照一个已经存在的词汇表,输出的统计结果也仅限于这个词汇表中的关键词。关键词提取和关键词查找可以搭配使用。定期地使用关键词提取来产生关键词词汇表,也可以在这个词汇表中人为删除或添加想要统计的关键词,最后使用关键词查找来产生最终的统计结果。在上一个章节中我们将统计结果中的“model”从统计结果中删除,然后我们可以将他们整理出来,然后删除重复的,添加一些对有统计价值的关键词。这里假设我们想统计有哪些模型招致客户的不满以致留言评价,但是我们想只保留模型的名称,而不是类似“model XX- 阅读全文
posted @ 2011-06-24 21:04 nd 阅读(1812) 评论(0) 推荐(1) 编辑
摘要:如果你曾经为网站做过单词或短语分析以便获得更好的搜索排名,你会对SSIS的这个任务很感兴趣。关键词提取任务是从文本流中查找并计算关键词的出现频率的工具。它可与接收任何形式的文本,输出两列:一列是关键词,另一列是这个关键词在文本中出现的频率的统计值。这个统计值可以是该关键词出现的次数,也可以是使用稍微复杂一点的计算公式(TFIDF)计算得出的几率值。缩写词TFIDF的全称是Term Frequency and Inverse Document Frequency,是一个用于计算单词或词组在在整个文本中出现的几率。下面是这个公式的表达式:TDIDF (of a term or phrase) = 阅读全文
posted @ 2011-06-23 19:02 nd 阅读(2803) 评论(5) 推荐(2) 编辑
摘要:今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起。后来在technet上搜索发现别有洞天,原来是另外一个sql关键字,t-sql的语法还是相当地丰富的。本篇是一篇学习笔记,没有什么新意,这里给出technet上的地址连接供大家参考权威:http://technet.microsoft.com/zh-cn/library/bb510625.aspx,这里具体的语法不去深究了,只是把几个例子实际运行,剖析一番。 使用merge同时执行insert和update操作我们经常会有这样的需求,根据某个字段或多个字段查找表中的一行或多行数据 阅读全文
posted @ 2011-06-22 17:11 nd 阅读(9793) 评论(17) 推荐(8) 编辑
摘要:OLE DB Commond任务接受输入流中的行数据并执行一段SQL语句或自定义存储过程。这个转换和Execute Sql任务容易混淆,但是它非常类似于在ADO连接中循环接收一个结果集中的数据,创建,执行一个ADO命令。输入流中的参数数据可以提供给一个Sql命令或者存储过程。这里我们看到“循环”可能就会联想到另外一个词“性能”。这可能涉及到更新,插入,删除语句,每次都会有断开,连接的操作。但是并不意味着这个转换一无是处,这里我们着重理解这个任务如何配置和使用的。要注意有多少输入数据并在需要缓存数据到临时表或实际表时权衡性能和伸缩性,以达到最优效果。在配置这个任务的时候,基本点要点是设置能够获得 阅读全文
posted @ 2011-06-20 20:08 nd 阅读(6547) 评论(0) 推荐(0) 编辑
摘要:在SSIS中的Row Count转换可以在数据流中计算数据源的行数。这种任务必须将行数保存在一个变量中。这种任务在你不想将数据行数保存在一个物理表中时会很有用。例如在ConditionalSplit任务中使用多个RowCount记录有多少行被分离出来,每个Row Count将使用变量记录分支中的数据行数,可以将这个变量值记录在数据库中,作为邮件信息发送出去,或者在下一个步骤中使用。一样这个任务需要使用高级编辑器,这个更加简单,只需要添加一个变量来存储行数。现在设想一个任务只有在数据流中的数据行数大于0的情况下才会执行,可以将此类推到任何按照不同条件执行task 的情况,在这里我们只简单举例说明 阅读全文
posted @ 2011-06-19 21:00 nd 阅读(4207) 评论(3) 推荐(0) 编辑
摘要:在SSIS高级转换任务—导出列这一篇随笔中主要完成的是把数据库中的文件列导出,这里将讨论如何将文件导入到数据库中,它和导出列任务是一对经常搭配使用的任务。当我们搞清楚它们实现什么功能的时候会发现原来的名字更加贴切。这种转换将系统文件路径中的物理文件转化为数据库中的表数据,反之亦然。理解输入列任务的关键是输入源中至少有一列保存将要导入到数据库中的文件的路径,还需要目标列保存文件和文件路径。这种转换仍然使用高级编辑。就因为它是高级编辑所以不够直观,也没有类似于向导一样的设置,但是熟悉之后使用它将会很方便。在高级编辑中没有类似将两列合并成一列这样的设置所以如果源数据中文件路径和文件名字是分离的,需要 阅读全文
posted @ 2011-06-08 18:39 nd 阅读(3467) 评论(3) 推荐(0) 编辑
摘要:在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用。下面的知识多是自己总结,有一些参考了MSDN。 sp_help有时候想尽快查出数据库对象的相关信息,这个存储过程就很有用了。使用它可以查询出整个数据库中所有对象的相关信息。直接运行sp_help结果如下图1,上面是数据库对象,包含系统自定义的表,视图等等,下面是自定义数据类型图1如果我只想找到某一中数据类型的长度,精度等信息可以运行sp_help datatypename,如下图2图2如果我想找出某. 阅读全文
posted @ 2011-06-03 19:11 nd 阅读(3662) 评论(11) 推荐(13) 编辑
摘要:今天对分页语句做一个简单的总结,他们大同小异的,只要理解其中一个其他的就很好理解了。 使用top选项selecttop10*from Ordersa where a.orderid notin(selecttop10 orderid from Orders orderby orderid) orderby a.orderid 使用max函数这种方法的前提是有唯一值的一个列。selecttop10*from Orders a where a.orderid>(selectMAX(orderid) from (selecttop10 orderid from Orders orderby o 阅读全文
posted @ 2011-06-01 15:10 nd 阅读(1550) 评论(4) 推荐(1) 编辑
摘要:T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了。这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查询,或者其他SQL不便实现的功能。这个随笔中将介绍在SQL Server中扩展C#程序实现正则表达式的替换功能。新建一个类库程序命名为Regex,打开Visual Studio 2008,点击File,点击New,点击Project,在弹出的New Project对话框中选择Class Library,项目名称为Regex。将项目中的类Class1命名为Regex,在这个类中写入如下代码:us.. 阅读全文
posted @ 2011-05-26 16:54 nd 阅读(9056) 评论(15) 推荐(6) 编辑
摘要:上一个随笔中我们提到了在Windows 7操作系统中配置ftp服务器并通过WinScp客户端来访问它,这样就可以方便的上传下载文件了。现在又有新的问题,我们发现如果项目中的文件很多,成百上千个文件,即使WinScp提供方便的文件拖拽功能,还是发现很繁杂。也许你会想到在dos中使用move命令,但是这个包含了cmd,cd,move等好几个命令,也是很费时间的。我们试图找到一种自动执行的程序,每隔一段时间来执行一次上传下载,这样我们的工作就很轻松了。这一次我们将使用dos命令做成bat文件,然后使用Task Scheduler调度bat来完成这个机械的,呆板的任务。感慨一下,只要我们想得到的,机器 阅读全文
posted @ 2011-05-25 19:38 nd 阅读(8098) 评论(2) 推荐(0) 编辑
摘要:好久没有碰IIS服务器了,又忘的差不多了,这个随笔中我将介绍在Windows 7操作系统中通过IIS配置ftp服务器的步骤。在公司的网络环境中阻止了ftp访问,在这里我们使用工具WinScp作为客户端访问ftp服务器,WinScp作为一个小型的ftp客户端非常小巧灵活,它可以访问ftp,sftp,scp等服务。下面我们新建一个ftp服务,然后用WinScp访问这个站点。打开IIS中ftp服务。默认情况下在IIS服务器中不会开启ftp站点服务,所以需要我们手动打开该服务。依次点击Control Panel\All Control Panel Items\Programs and Features 阅读全文
posted @ 2011-05-24 20:08 nd 阅读(8996) 评论(12) 推荐(4) 编辑
摘要:在上一个导入列这个例子中我们创建一个实际的表来存储文件路径,在生产环境中我们可能不会创建一个实际的物理表来存储这些信息,而是创建临时表。这里有一个小小的技巧,在Control Flow中拖放两个Execute SQL task,一个创建临时表,另一个销毁临时表,执行这个package,会遇到一个错误,在Progress中提示信息显示不存在这个临时表。错误信息如下:Error: 0xC002F210 at Execute SQL Task 1, Execute SQL Task: Executing the query "drop table #Table1" failed 阅读全文
posted @ 2011-05-20 19:44 nd 阅读(2545) 评论(0) 推荐(2) 编辑
摘要:好久没有写SSIS了,接着上回的Import Column,这个随笔学习Export Column,这个转换任务用来从数据库中的blob类型的列转换成文件保存到文件系统中或者在Microsoft Word文件或者Microsoft Paint文件中浏览。执行这个task的关键是要有一列包含文件的数据和要导出文件的路径。Export Column会将数据列转换成物理文件,并按照完全限定的路径保存这些文件。在下面的例子中,将把数据库AdventureWorks中的一个文件列导出。如果你安装了数据库AdventureWorks,在这个数据库中有一个包含文件的表 [Production].[docum 阅读全文
posted @ 2011-05-19 21:39 nd 阅读(3116) 评论(3) 推荐(0) 编辑
摘要:今天同事安装MOSS 2007(32位)遇到了一个错误。我记得以前装过,觉得功能很强大的,所有的东西不管什么放在sharepoint里面就变成两样,一个是列表,一个是文件,并且全部都是自动生成数据表的,我的理解可能很简单。下面我们来看看具体的问题。点击setup.exe,就弹出一个对话框提示:The product requires ASP.NET v2.0 to be set to ‘Allow’ in the list of Internet Information Service(IIS) Web Server Extensions. … …. 如下图1图1这个问题很明显,说明IIS服务 阅读全文
posted @ 2011-05-16 20:06 nd 阅读(1273) 评论(0) 推荐(1) 编辑
摘要:数据库中的数据编辑是我们遇到的最频繁的工作,这一个随笔中我来总结一下最常用的数据编辑。 select into经常遇到一种情况是,我们希望创建一个新表,表中的数据来源于原有的一个表;原有一个表,但是这个表中的数据已经很混乱,我们希望把这些数据备份出来,然后把原有的表中的数据清除,重新导入;在这些情况下我们可以使用select into语句。如果当前用户拥有建表权限,在select语句使用关键字into可以在数据库中创建新的 表。这个语句只需要把into new_table_name加到选择出的列名之后,from关键字之前,当然数据可以来源于一个或多个表中。需要说明的是在新表中只包含select 阅读全文
posted @ 2011-05-13 20:55 nd 阅读(2740) 评论(4) 推荐(2) 编辑
摘要:要知道线程等待时间是制约SQL Server效率的重要原因,这一个随笔中将学习怎样收集SQL Server中的线程等待时间,类型等信息,这些信息是进行数据库优化的依据。 sys.dm_os_wait_stats这是一个系统视图,里面存储线程所遇到的所有的等待信息,具体的列如下表列名数据类型说明Wait_typeNvarchar(60)等待类型名称waiting_tasks_countBigint等待类型的等待数。该计数器在每开始一个等待时便会增加。Wait_time_msBigint该等待类型的总等待时间。Max_wait_time_msBigint该等待类型的最长等待时间。Signal_wa 阅读全文
posted @ 2011-05-10 20:25 nd 阅读(3071) 评论(6) 推荐(3) 编辑
摘要:备份数据库时出现一个不太了解的错误 ,错误信息“is formatted to support 1 media families, but 2 media families are expected according to the backup device specification”。如下图:解决办法是首先选中击上一次备份的文件,点击Remove,去掉当前的备份文件,然后再点击OK备份。这样才能正确的备份。也在微软帮助文档里面看过原由,实在内容太多没有时间细看。还原数据库,又遇到了数据库里面的小把戏,还原的时候发现在文件夹内找不到bak文件,选择All Files(*)之后才能显示出来。 阅读全文
posted @ 2011-05-06 15:15 nd 阅读(2769) 评论(0) 推荐(0) 编辑