win32应用程序的HINSTANCE传递给WinMain,但有没有其他方法可以确定当前的HINSTANCE(如果你不知道,我是win32编程的新手!)?我需要在库中创建一个窗口(因为库是跨平台的),id不想传递它.
这个类怎么编译?
public class ReflectionHelper
{
public static IReflectionHelper CreateHelper( object subject )
{
return ( IReflectionHelper )Activator.CreateInstance( typeof( ReflectionHelper<> ).MakeGenericType( GetFirstGenericArgument( subject ) ) );
}
public static Type GetFirstGenericArgument( object subject )
{
return subject.GetType().GetGenericArguments()[ 0 ];
}
}
public class ReflectionHelper<T> : ReflectionHelper, IReflectionHelper where T : new()
{}
Run Code Online (Sandbox Code Playgroud)
注意ReflectionHelper <T>继承自ReflectionHelper,它反映了ReflectionHelper的类型<>由于某种原因,我期待循环引用编译错误.
我有两个大表,每个表有大约1亿条记录,我担心我需要在两者之间进行内部连接.现在,两张桌子都非常简单; 这是描述:
BioEntity表:
EGM表(一个辅助表,实际上是批量导入操作的结果):
我需要获得匹配的名称,以便将BioEntityId与驻留在EGM表中的PId相关联.最初,我尝试使用单个内连接执行所有操作,但查询似乎占用时间太长,数据库的日志文件(在简单恢复模式下)设法咀嚼所有可用磁盘空间(刚刚超过200 GB,当数据库占用18GB)并且等待两天后查询将失败,如果我没有弄错的话.我设法保持日志不会增长(现在只有33 MB),但查询已经连续运行了6天,并且它看起来不会很快就会停止.
我在相当不错的计算机上运行它(4GB RAM,Core 2 Duo(E8400)3GHz,Windows Server 2008,SQL Server 2008)并且我注意到计算机偶尔会每30秒(给予或接受)一次几秒钟.这使得它很难用于其他任何事情,这真的让我感到紧张.
现在,这是查询:
SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
FROM EGM INNER JOIN BioEntity
ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
Run Code Online (Sandbox Code Playgroud)
我手动设置了一些索引; EGM和BioEntity都有一个包含TypeId和Name的非聚集覆盖索引.但是,查询运行了五天,它也没有结束,所以我尝试运行Database Tuning Advisor来使事情发挥作用.它建议删除我的旧索引并创建统计信息和两个聚簇索引(每个表上一个,只包含我发现相当奇怪的TypeId - 或者只是简单的愚蠢 - 但我还是试了一下).
它现在已经运行了6天,我仍然不确定该怎么做......任何想法的人?我怎样才能更快(或者至少有限)?
更新: - 好的,我已取消查询并重新启动服务器以使操作系统重新启动并运行 - 我正在使用您提议的更改重新运行工作流程,特别是将nvarchar字段裁剪为更小的尺寸并交换"like"为"=".这将需要至少两个小时,所以我稍后会发布进一步的更新
更新2(格林尼治标准时间下午1点,2009年11月18日): - 估计的执行计划显示有关表扫描的成本为67%,然后是33%的哈希匹配.接下来是0%的并行性(这不是很奇怪吗?这是我第一次使用估计的执行计划,但这个特殊的事实只是抬起了我的眉毛),0%哈希匹配,0%并行度,0%顶部,0 %table insert和最后另一个0%select into.似乎索引是垃圾,正如预期的那样,所以我将制作手动索引并丢弃糟糕的建议.
sql sql-server inner-join query-optimization sql-server-2008
我正在尝试使用TreeMap类的ceilingKey(),ceilingEntry(),firstKey()和firstEntry()但收到错误:
java.lang.NoSuchMethodError: method java.util.TreeMap.firstEntry with signature ()Ljava.util.Map$Entry; was not found.
此错误是由以下代码引起的:
if (tmpmap.size() == 1 && tmpmap.firstKey() == req_sbyte && tmpmap.firstEntry().getValue() == req_size) {
send("F" + req_nr + "," + Integer.toString(req_filenr) + "," + Long.toString(req_sbyte) + "," + Integer.toString(req_size), "localhost", CLIENTPORT);
}
这是java -version的输出:
java version "1.5.0"
gij (GNU libgcj) version 4.1.2 20070925 (Red Hat 4.1.2-33)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for …
好的,我有这个购物车中的产品清单.我正在尝试将所有相关项目检索到购物车中的商品,而不会拉出购物车中的任何商品.
我编写了这个查询,它完全按照我想要的方式提取,但它的运行时间为8秒.
SELECT * FROM cart_product
WHERE product_id
IN(
SELECT product_related_related_id FROM `cart_product_related`
WHERE product_related_product_id
IN (5401,5402,4983,5004)
)
AND product_id
NOT IN(5401,5402,4983,5004)
Run Code Online (Sandbox Code Playgroud)
显示行0 - 2(总共3行,查询占用7.9240秒)
有什么方法可以优化它以使其运行更快?
谢谢!
我有这个php cURL函数:
function curl_login($url,$data,$proxy,$proxystatus){
$fp = fopen("cookietlt.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, TRUE);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start(); // prevent any output
return curl_exec ($login); // execute the curl command
ob_end_clean(); …Run Code Online (Sandbox Code Playgroud) 我认为DataGridView是内存猪.是通过值传递datagridview还是通过引用更好?它甚至应该通过吗?
我知道Java没有指针,但我听说Java程序可以用指针创建,这可以由少数java专家完成.这是真的吗?
我一直在努力解决Java和SQL Server中的精确噩梦,直到我不知道为止.就个人而言,我理解这个问题及其根本原因,但向全球客户解释这一点是不可行的(至少对我而言).
情况就是这样.我在SQL Server中有两列--Qty INT和Price FLOAT.这些值为 - 1250和10.8601 - 因此,为了获得总值,其数量*价格和结果为13575.124999999998(在Java和SQL Server中).那是对的.问题是这个 - 客户不想看到它,他们只看到这个数字为13575.125就是这样.在一个地方,他们可以用2位小数精度看到它,另外4位小数.当以4位小数显示时,数字是正确的 - 13575.125,但是当以2位小数显示时,他们认为它是错误的 - 13575.12 - 应该是13575.13!
救命.
c# ×3
java ×3
sql ×2
sql-server ×2
curl ×1
datagridview ×1
datatable ×1
file ×1
filenames ×1
hinstance ×1
http-headers ×1
inner-join ×1
mysql ×1
performance ×1
php ×1
pointers ×1
precision ×1
rounding ×1
unsafe ×1
winapi ×1