我遇到的问题是,运行存储过程会占用太多资源,这有时会导致服务器超时(特别是当CPU使用率超过90%时).
任何人都可以建议最好和最快的方法是发现占用大量资源的块,并建议一个解决它的好方法,拜托?
任何人都可以建议提示或更改,以使此代码更清洁,更快?这是我在周五晚上想到的唯一方法,但我确信必须有一种更有效的方法来做到这一点......
我知道正则表达式没有效率,但我不能老实说看到我还能做到这一点,特别是如果邮政编码数据可以来自:
e1 2be e1ebe e10ebe e10 ebe ex1 ebe ex1ebe
等等...
非常感谢任何编码技巧,H
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Amma Gawd! Someone ate our database!');
mysql_select_db($dbname);
$result = mysql_query("SELECT * FROM `Consumer`
WHERE left(`Postcode`,2) = 'E'
OR left(`Postcode`,1) = 'N'
OR left(`Postcode`,1) = 'W'");
while($row = mysql_fetch_array($result)) {
$email = $row['Email'];
if (preg_match("/^[Ee]{1}[0-9]{2}/",$row['Postcode'])) {
mysql_query("UPDATE `Consumer` SET `CONYES` = '1' WHERE `Email` = '$email'") or die ("Bugger");
$counter = $counter +1;
} elseif (preg_match("/^[Nn]{1}[0-9]{2}/",$row['Postcode'])) {
mysql_query("UPDATE `Consumer` SET `CONYES` …Run Code Online (Sandbox Code Playgroud) 我们有一个数据库表,有大约200,000条记录.其中包括3个ntext列,其中包含长度为4000-70000的字符串数据.但桌面上的一个选择只需要1分钟以上的时间来返回数据.甚至使用where条件和索引来为条件选择12000条记录需要40秒.
所以我们决定将这些数据类型更改为nvarchar(max),但仍然没有注意到主要区别,因为它会将数据存储在行之外,因为它太长了.有什么更好的方法可以提高我的表的性能?
在我的工作中,我有几个包含超过200,000行数据的表.我必须设置一些查询,一次超过15,000+,所以有时我会收到此错误:
PHP致命错误:超过180秒的最大执行时间
那么,我如何加快查询速度呢?
查询是这样的:
SELECT toemail, toname
FROM email_sent
WHERE companyid = '$member[companyid]'
Run Code Online (Sandbox Code Playgroud)
谢谢.
这将是我第一次尝试微调我们的SQL Server 2008R2,我想要一个基于以下内容的起点.
当我查看资源监视器时,我看到(以KB为单位):提交:843,948工作集:718,648可共享:26,276私人:692,372
在我们的虚拟服务器上可用的2个演出中,1.6正在用完,我怀疑它是由于SQL Server,当我启动一个TVP插入和检查的服务时,内存会被弄糟.我已经在我的c#服务中添加了一些GC.collect(),但是我并没有真正看到很多变化,这让我回到了SQL Server.
基于这些信息和一些快速指针,我将在哪里学习更多有关优化的良好起点?
谢谢.
通过GAE文件.
我有一个问题,我找不到明显的答案.鉴于实体组的交易限制为1 /秒,您如何扩展请求,例如10,000个用户同时想要访问特定用户的页面?
这不会以1 /秒的速度为您提供特定用户实体组的10,000次读取,从而导致灾难性的系统故障和用户不满意吗?
或者我感到困惑,只有写作才引起争议.
我想知道是否有更好的方法从 c1 列获取 max,然后从 c2 列获取所选行的 max
SELECT MAX(c1) , MAX(c2) FROM t GROUP BY c1 HAVING c1 = MAX(c1)
Run Code Online (Sandbox Code Playgroud) 我正在阅读有关Oracle Golden Gate 11g的内容并且在整个学期中都有所涉及
"查询卸载"
谷歌搜索后,我找不到它的确切答案.虽然我在某种程度上理解它与查询优化有关.
请帮忙.
我有一个查询,基于主键删除一组300条记录.
该表大约有250,000条记录和4列(int PK,varchar,date,tinyint),因此它应该是一个非常易于管理的大小,但是,在没有运行其他查询的情况下删除大约需要2分钟,这看起来相当多它删除的行数和表的大小.
sql看起来像这样:
-- this takes less than 1 second
CREATE TEMPORARY TABLE IF NOT EXISTS temp AS (
SELECT id
FROM some_other_table
WHERE ...
LIMIT 300
);
-- id is the primary key
-- this takes upwards of 2 minutes
DELETE FROM queue WHERE id in(
select id from temp
);
Run Code Online (Sandbox Code Playgroud)
该表只有一个附加索引,没有外键关系.有什么想法,我可以做些什么来加快这个速度?
我有以下(混淆的)SQL 正在运行SQL Server 2012,需要显着提高其性能。它有效,但有时需要 60 多秒才能返回。
我想提取JOINS,但这个职位似乎表明,这将是不可能的(因为喜欢的东西MIN和MAX) -所以如何提高性能,获取这些连接简化/改进?
SELECT
wm.id, wm.uid, wm.em, wm.fn, wm.ln, c, y, RTRIM(LTRIM(yCode)) AS yCode, wm.d1, ISNULL(wm.ffn, wm.pp) as ffn, wm.ada,
case
when wm.mss & 2=2
then 'false'
else 'true'
end AS isa,
(
SELECT ', '+RTRIM(p1.cKey)
FROM profile p1
inner join loc stl on p1.cKey=stl.cKey
WHERE p1.id = wm.id and p1.s = 'A'
FOR XML PATH('')
) [lst],
lishc.[lstCount],
TotalCount = COUNT(*) OVER(),
la.lsa, wskp.cKey …Run Code Online (Sandbox Code Playgroud) sql ×5
mysql ×4
sql-server ×3
database ×1
innodb ×1
nvarchar ×1
optimization ×1
oracle ×1
performance ×1
php ×1
varchar ×1