小编Mei*_*ude的帖子

在表中使用VARCHAR(MAX)有缺点吗?

这是我的困境.

基本上,我需要一个表中的列来保持未知长度的字符.但我很好奇,如果在一个列中使用VARCHAR(MAX)或NVARCHAR(MAX)可能会出现Sql Server性能问题,例如:'这次'我只需要存储3个字符,而且大部分时间我只需要存储10个字符.但是在该专栏中可能会有几千个字符,甚至可能是一百万字,这是一个很小的机会,这是不可预测的.但是,我可以保证它不会超过2GB的限制.

我只是好奇是否有任何性能问题,或者可能有更好的方法来解决这个问题.

sql-server varchar nvarchar

30
推荐指数
2
解决办法
2万
查看次数

检查数字在signed int中是否只有一个位的创新方法

我正在寻找一种创新的方法来检查一个数字在signed int中是否只有一个位.

我很清楚我可以简单地使用计数器,一些模块化分区和一个位移来进行循环.但我很好奇是否有更好的方法,因为我们只想找到一个位.

bool HasOnlyOneBit (int  numb)
{
   //return true if numb has only one bit (I.E. is equal to 1, 2, 4, 8, 16... Int.MinValue)
}
Run Code Online (Sandbox Code Playgroud)

algorithm byte

29
推荐指数
3
解决办法
9055
查看次数

获取进程的ram使用情况

我一直在弄清楚我是如何获得进程的ram用法的.(它目前消耗多少ram,而不是预留多少,或者最大或最小)

假设我有一个在后台运行的进程,Java.exe,允许使用1024mb的ram,我怎么能知道它当前使用了多少ram.

我自己开始这个过程,所以我可以访问Process对象,我想更清楚一下我的属性是什么.

c#

20
推荐指数
2
解决办法
5万
查看次数

XML异常:无效字符

我正在开发一个小项目,它从一个长期运行的应用程序接收字符串形式的XML数据.我正在尝试将此字符串数据加载到XDocument(System.Xml.Linq.XDocument)中,然后从那里执行一些XML Magic并为数据报告创建xlsx文件.

有时,我收到包含无效XML字符的数据,并且在尝试将字符串解析为a时XDocument,我收到此错误.

[System.Xml.XmlException]消息:'?',十六进制值0x1C,是无效字符.

由于我无法控制远程应用程序,因此您可以期待任何类型的角色.

我很清楚XML有一种方法可以将字符放在其中,例如类似的&#x1C东西.

如果可能的话,我会非常喜欢保留所有数据.如果没有,那就不要了.


我已经考虑过以编程方式编辑响应字符串,然后返回并尝试重新解析如果抛出异常,但我尝试了一些方法,但它们似乎都没有成功.

谢谢你的想法.

代码就是这样的:

TextReader  tr;
XDocument  doc;

string           response; //XML string received from server. 
... 
tr = new StringReader (response);   

try
{
    doc = XDocument.Load(tr);
}
catch (XmlException e)
{
    //handle here?
}
Run Code Online (Sandbox Code Playgroud)

c# xml linq-to-xml

13
推荐指数
3
解决办法
3万
查看次数

LINQ加入 - 性能

我很好奇LINQ(而不是LINQ to SQL)的表现是如何在Sql Server执行连接的情况下加入幕后的.

Sql Server在执行查询之前,生成执行计划.执行计划基本上是一个表达式树,它认为它是执行查询的最佳方式.每个节点都提供有关是否执行排序,扫描,选择,加入等信息.

在我们的执行计划中的"加入"节点上,我们可以看到三种可能的算法; 散列连接,合并连接和嵌套循环连接.Sql Server将根据Inner表和外表中的预期行数,我们正在做什么类型的连接(某些算法不支持所有类型的连接),是否需要数据排序,以及为每个Join操作选择哪种算法,以及可能还有很多其他因素

加入算法:

嵌套循环连接:最适合小输入,可以使用有序内部表进行优化.

合并连接:最适合中到大输入排序输入,或需要订购的输出.

散列连接:最适合中到大输入,可以并行化以线性扩展.

LINQ查询:

DataTable  firstTable, secondTable;

...

var rows = from firstRow in firstTable.AsEnumerable ()
                join secondRow in secondTable.AsEnumerable ()
                    on firstRow.Field<object> (randomObject.Property)
                    equals secondRow.Field<object> (randomObject.Property)
           select new {firstRow, secondRow};
Run Code Online (Sandbox Code Playgroud)

SQL查询:

SELECT *
FROM firstTable fT
    INNER JOIN secondTable sT ON fT.Property = sT.Property
Run Code Online (Sandbox Code Playgroud)

如果Sql Server知道每个表中有少量行,则可以使用嵌套循环连接,如果知道其中一个表有索引,则使用合并连接;如果知道任何一个表上有很多行,则使用散列连接表,既没有索引.

Linq是否选择其连接算法?还是总是使用一个?

sql linq join

9
推荐指数
2
解决办法
4887
查看次数

XSL:FO,漂浮在FOP中

前段时间我发现FOP不允许你使用浮点数,以及Xsl-Fo 1.0中的一些其他功能.我尝试了几种不同的方法来模仿它们,但我没有成功.如果有人在这方面取得了成功,或者有想法.我真的很感激启蒙.

xsl-fo apache-fop

7
推荐指数
1
解决办法
2698
查看次数

C#重载运算符==和!=

我遇到了从这几个类和接口中获得所需行为的问题.

这是我的问题,

//Inside a Unit Test that has access to internal methods and properties

INode  firstNode, secondNode;

INodeId  id = new NodeId (4);

first = new Node (id, "node");
second = new Node (id, "node");

Assert.IsTrue (first == second);
Run Code Online (Sandbox Code Playgroud)

上面的断言失败了,因为它似乎是在对象类的equals方法而不是Node和NodeId类中的重载运算符.

如果您对如何获得所需行为有任何建议,那将是非常棒的.

以下是我正在研究的框架的一部分:

public interface IIdentifier<T> where T : class
{
    TKeyDataType GetKey<TKeyDataType> ();

    bool Equals (IIdentifier<T> obj;
}

public interface INode
{
    string name
    {
        get;
    }

    INodeId id
    {
        get;
    }
}

public interface INodeId : IIdentifier<INode>
{
} …
Run Code Online (Sandbox Code Playgroud)

c# operator-overloading

3
推荐指数
1
解决办法
2687
查看次数

C#初始化混乱!

int?  test;
try
{
    test = (int?) Int32.Parse ("7");
} catch {}

if (test == null)
     Console.WriteLine("test is null!");
else
     Console.WriteLine("test = {0}", test);
Run Code Online (Sandbox Code Playgroud)

我有一些代码可以做一些与此类似的东西,同样的想法真的...创建变量,尝试初始化它,然后测试初始化​​是否成功.

Visual Studios给我一个错误,说"使用未分配的局部变量'test'",这有点烦人,可以通过将第一行设置为:

int?  test = null;
Run Code Online (Sandbox Code Playgroud)

但我很好奇这两行之间的区别是什么,因为编译器似乎真的很在意.据我所知,这两条线做同样的事情.

c# syntax null

0
推荐指数
1
解决办法
1250
查看次数