我在SQL Server数据库中有一个表,其中包含一个地址字段(例如,1 Farnham Road,Guildford,Surrey,GU2XFF),我想在搜索字符串之前和之后使用通配符进行搜索.
SELECT *
FROM Table
WHERE Address_Field LIKE '%nham%'
Run Code Online (Sandbox Code Playgroud)
我在这张表中有大约200万条记录,我发现查询需要5-10秒,这并不理想.我相信这是因为前面的通配符.
我认为我说的是,由于前面的通配符,任何索引都不会用于搜索操作.
使用全文搜索和CONTAINS是不可能的,因为我想搜索单词的后半部分(我知道你可以在下面的查询中替换Guil*的搜索字符串,这将返回结果).当然运行以下返回没有结果
SELECT *
FROM Table
WHERE CONTAINS(Address_Field, '"nham"')
Run Code Online (Sandbox Code Playgroud)
有没有办法优化前面的通配符查询?
在下面的代码中,作者使用.insert在矩形"之前"定位圆圈(实际上它们出现在我相信的顶部),而不是直接将它们附加到svg空间.
我认为这是不必要的,所以删除了rect和.insert并将圆元素直接附加到svg空间.然而结果是圆圈没有"足够快地绘制"(因为缺乏更明确的解释).
任何人都可以向我解释为什么会发生这种情况或指向一些解释它的文献的方向吗?
var width = Math.max(900, innerWidth),
height = Math.max(700, innerHeight)
var svg = d3.select("body").append("svg")
.attr({
"width": width,
"height": height
})
var i = 1;
svg.append("rect")
.attr({
"width": width,
"height": height
})
.on("mousemove", particle)
function particle() {
var m = d3.mouse(this)
var circle = svg.insert("circle", "rect")
.attr("cx", m[0])
.attr("cy", m[1])
.attr("r", 10)
.style("stroke", d3.hsl((i = (i + 1) % 360), 1, .5))
.style("stroke-opacity", 1)
.transition().duration(1000)
.ease(Math.sqrt)
.attr("r", 100)
.style("stroke-opacity", 1e-6)
}
Run Code Online (Sandbox Code Playgroud)
感谢并感谢http://techslides.com/over-1000-d3-js-examples-and-demos.
我创建了一个jsfiddle @ http://jsfiddle.net/hiwilson1/mgchrm0w/
谁能说清楚SAS和SQL之间的主要区别是什么?我在SAS方面工作不多,但是参加了为期数周的培训课程,基本上看起来像是等效的,但是更加复杂,并且能够绘制图表。
希望他们之间有一些关键的区别。