我正在学习表变量的更多细节。它说临时表总是在磁盘上,而表变量在内存中,也就是说,表变量的性能比临时表好,因为表变量比临时表使用更少的IO操作。

但是有时候,如果一个表变量中有太多记录不能包含在内存中,那么这个表变量就会像临时表一样被放到磁盘上。

但我不知道“太多记录”是什么意思。100000条记录吗?还是100万条记录?我如何知道我正在使用的表变量是在内存中还是在磁盘上?在SQL Server 2005中是否有任何函数或工具来测量表变量的规模,或者让我知道表变量何时从内存中放到磁盘上?

我有一个小问题,XPath包含与dom4j…

假设我的XML是

<Home>
    <Addr>
        <Street>ABC</Street>
        <Number>5</Number>
        <Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
    </Addr>
</Home>

假设我想找到文本中所有有ABC的节点,给定根元素…

所以我需要写的XPath是

/ * [contains(短信),‘ABC’)

然而,这不是dom4j返回的内容....这是dom4j的问题,还是我对XPath工作原理的理解,因为该查询只返回Street元素而不返回Comment元素?

DOM使Comment元素成为一个具有四个标记(两个)的复合元素

[Text = 'XYZ'][BR][BR][Text = 'ABC'] 

我假设查询仍然应该返回元素,因为它应该找到元素并在其上运行contains,但它没有……

下面的查询返回元素,但它返回的不仅仅是元素——它还返回父元素,这对问题来说是不可取的。

//*[contains(text(),'ABC')]

有人知道XPath查询只返回元素<Street/>和<Comment/>吗?

在SQL Server 2005中,有两种方法可以创建临时表:

declare @tmp table (Col1 int, Col2 int);

or

create table #tmp (Col1 int, Col2 int);

这两者之间有什么区别?关于@tmp是否仍然使用tempdb,或者是否所有事情都发生在内存中,我读过相互矛盾的意见。

在哪些情况下,一个会优于另一个?

我不完全明白Node.js是关于什么的。也许是因为我主要是一个基于web的商业应用程序开发人员。它是什么?它有什么用?

目前我的理解是:

编程模型是事件驱动的,特别是它处理I/O的方式。 它使用JavaScript,解析器是V8。 它可以很容易地用于创建并发服务器应用程序。

我的理解正确吗?如果是,那么事件I/O的好处是什么,它只是更多的并发性的东西吗?另外,Node.js的方向是成为一个框架,像基于JavaScript(基于V8)的编程模型吗?

是否可以从选择语句中创建一个临时(仅会话)表,而不使用create table语句并指定每个列类型?我知道派生表能够做到这一点,但那些是超临时的(仅语句),我想重用。

如果我不需要编写create table命令并保持列列表和类型列表匹配,就可以节省时间。

我使用下面的代码来检查临时表是否存在,如果它存在,则在重新创建之前删除表。只要我不改变列,它就可以工作。如果我稍后添加一个列,它会给出一个错误,说“无效列”。请让我知道我做错了什么。

IF OBJECT_ID('tempdb..#Results') IS NOT NULL
    DROP TABLE #Results

CREATE TABLE #Results
(
    Company                CHAR(3),
    StepId                TINYINT,
    FieldId                TINYINT,
)

select company, stepid, fieldid from #Results

--Works fine to this point

IF OBJECT_ID('tempdb..#Results') IS NOT NULL
    DROP TABLE #Results

CREATE TABLE #Results
(
    Company                CHAR(3),
    StepId                TINYINT,
    FieldId                TINYINT,
    NewColumn            NVARCHAR(50)
)

select company, stepid, fieldid, NewColumn from #Results

--Does not work

我一直在尝试在业余时间学习C,而其他语言(C#、Java等)都有相同的概念(通常是相同的运算符)。。。

在核心层面,比特移位(<<,>>,>>)做什么,它可以帮助解决什么问题,以及弯道周围潜伏着什么陷阱?换言之,这是一个绝对的初学者指南,可以让你充分利用它的优点。