473,723 Members | 2,218 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Query performance question on a large table

Hi All,
how can I improve the query performance in the following situation:
I have a big (4.5+ million rows) table. One query takes approx. 9 sec to
finish resulting ~10000 rows. But if I run simultaneously 4 similar queries
it takes nearly 5 minutes instead of 4 times 9 seconds or something near of
that.

here is a sample query:
select mertido, fomeazon, ertektipus, mertertek from t_me30 where fomeazon
in (select distinct fomeazon from t_fome where lower(inuse) = 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order by mertido,
fomeazon, ertektipus;

What kind of indexes could speed up a query like this? I tried to create one
on fields (mertido, fomeazon, ertektipus) but led me much longer execution
time.

Ohh, I nearly forgot the config: Linux 7.1; Postgres 7.3.2;

Thank you,
bye

----------------------------------------
Csaba Együd
cs*****@vnet.hu
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Nov 12 '05 #1
8 3267
=?iso-8859-2?Q?Egy=FCd_Csa ba?= <cs*****@vnet.h u> writes:
here is a sample query:
select mertido, fomeazon, ertektipus, mertertek from t_me30 where fomeazon
in (select distinct fomeazon from t_fome where lower(inuse) = 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order by mertido,
fomeazon, ertektipus; Ohh, I nearly forgot the config: Linux 7.1; Postgres 7.3.2;


The first thing you ought to do is move to PG 7.4. "foo IN (SELECT ...)"
generally works a lot better under 7.4 than prior releases. I'd suggest
dropping the "DISTINCT" when using 7.4, too.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postg resql.org

Nov 12 '05 #2
Tom,

Sort of piggybacking on this thread but why the suggestion to drop the
use of DISTINCT in 7.4? We use DISTINCT all over the place to eliminate
duplicates in sub select statements. Running 7.4.0 currently on
FreeBSD5.1 Dell 2650 4GB RAM 5 disk SCSI array hardware RAID 0

Example:

explain analyze select t1.raw_agent_st ring from d_useragent t1 where
t1.id in (select distinct useragent_key from f_pageviews where date_key
between 356 and 362);

QUERY PLAN

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nested Loop (cost=1020025.1 3..1020178.84 rows=51 width=79) (actual
time=954080.021 ..970268.457 rows=82207 loops=1)
-> HashAggregate (cost=1020025.1 3..1020025.13 rows=51 width=4)
(actual time=954049.317 ..954450.065 rows=82208 loops=1)
-> Subquery Scan "IN_subquer y" (cost=983429.20 ..1020025.00
rows=51 width=4) (actual time=856641.244 ..953639.116 rows=82208 loops=1)
-> Unique (cost=983429.20 ..1020024.49 rows=51 width=4)
(actual time=856641.230 ..952939.539 rows=82208 loops=1)
-> Sort (cost=983429.20 ..1001726.84 rows=7319058
width=4) (actual time=856641.215 ..906429.835 rows=11067735 loops=1)
Sort Key: useragent_key
-> Index Scan using
idx_pageviews_d ate_dec_2003 on f_pageviews (cost=0.00..136 434.63
rows=7319058 width=4) (actual time=1.140..693 400.464 rows=11067735 loops=1)
Index Cond: ((date_key >= 356) AND
(date_key <= 362))
-> Index Scan using d_useragent_pke y on d_useragent t1
(cost=0.00..3.0 0 rows=1 width=83) (actual time=0.169..0.1 74 rows=1
loops=82208)
Index Cond: (t1.id = "outer".userage nt_key)
Total runtime: 970657.888 ms
(11 rows)

t1.id is the primary key on d_useragent. d_useragent actually has
390751 rows.
useragent_key has an index. f_pageviews has roughly 120 million rows.

Is there a better way of writing this sort of query that will accomplish
the same thing?

Thanks.

--sean

Tom Lane wrote:
=?iso-8859-2?Q?Egy=FCd_Csa ba?= <cs*****@vnet.h u> writes:

here is a sample query:
select mertido, fomeazon, ertektipus, mertertek from t_me30 where fomeazon
in (select distinct fomeazon from t_fome where lower(inuse) = 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order by mertido,
fomeazon, ertektipus;

Ohh, I nearly forgot the config: Linux 7.1; Postgres 7.3.2;


The first thing you ought to do is move to PG 7.4. "foo IN (SELECT ...)"
generally works a lot better under 7.4 than prior releases. I'd suggest
dropping the "DISTINCT" when using 7.4, too.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postg resql.org

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match

Nov 12 '05 #3
Sean Shanny <sh************ **@earthlink.ne t> writes:
Sort of piggybacking on this thread but why the suggestion to drop the
use of DISTINCT in 7.4?
Because the 7.4 planner can decide for itself whether DISTINCT'ifying
the sub-select output is the best way to proceed or not. There is more
than one good way to do an "IN sub-SELECT" operation, and the 7.4
planner knows several. (Pre-7.4 planners didn't know any :-( ... but
I digress.) When you write "foo IN (SELECT DISTINCT ...)", the DISTINCT
doesn't change the semantics at all, it just adds overhead.

In fact it's worse than that: if the planner decides that the best way
to proceed is to make the subselect output unique, it will throw another
layer of sort/unique processing on top of what you did. So writing
DISTINCT is actually a pessimization in 7.4.
Example: -> HashAggregate (cost=1020025.1 3..1020025.13 rows=51 width=4)
(actual time=954049.317 ..954450.065 rows=82208 loops=1)
-> Subquery Scan "IN_subquer y" (cost=983429.20 ..1020025.00
rows=51 width=4) (actual time=856641.244 ..953639.116 rows=82208 loops=1)
-> Unique (cost=983429.20 ..1020024.49 rows=51 width=4)
(actual time=856641.230 ..952939.539 rows=82208 loops=1)
-> Sort (cost=983429.20 ..1001726.84 rows=7319058
width=4) (actual time=856641.215 ..906429.835 rows=11067735 loops=1)
Sort Key: useragent_key
-> Index Scan using


The sort/unique steps are coming from the DISTINCT. The HashAggregate
step is the planner making sure the output rows are distinct :-(

I just a couple days ago added some logic to CVS tip to notice that the
sub-select has a DISTINCT clause, and not add unnecessary unique-ifying
processing on top of it. So in 7.5, writing a DISTINCT clause will
amount to forcing a particular query plan, which might or might not be
the best thing but hopefully won't be too terrible. But in 7.4 it has
nothing to recommend it ...

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Nov 12 '05 #4
Hi Tom,
thank you, I'll upgrade as soon as I can. Anyway I've already planned to do
so for a while.
I'll keep in mind your remarks concerning the DISTINCT clause too.

Bye and Best Regards,
-- Csaba
-----Original Message-----
From: pg************* ****@postgresql .org
[mailto:pg****** ***********@pos tgresql.org]On Behalf Of Tom Lane
Sent: 2004. január 6. 21:04
To: cs*****@vnet.hu
Cc: Pg***********@P ostgresql.Org (E-mail)
Subject: Re: [GENERAL] Query performance question on a large table
=?iso-8859-2?Q?Egy=FCd_Csa ba?= <cs*****@vnet.h u> writes:
here is a sample query:
select mertido, fomeazon, ertektipus, mertertek from

t_me30 where fomeazon
in (select distinct fomeazon from t_fome where lower(inuse)

= 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order

by mertido,
fomeazon, ertektipus;

Ohh, I nearly forgot the config: Linux 7.1; Postgres 7.3.2;


The first thing you ought to do is move to PG 7.4. "foo IN
(SELECT ...)"
generally works a lot better under 7.4 than prior releases.
I'd suggest
dropping the "DISTINCT" when using 7.4, too.

regards, tom lane

---------------------------(end of
broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to
ma*******@postg resql.org

-- Incoming mail is certified Virus Free.
Checked by AVG Anti-Virus (http://www.grisoft.com).
Version: 7.0.209 / Virus Database: 261 - Release Date: 2004. 01. 02.

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Nov 12 '05 #5
On Wed, Jan 07, 2004 at 02:31:22 -0500,
Tom Lane <tg*@sss.pgh.pa .us> wrote:

I just a couple days ago added some logic to CVS tip to notice that the
sub-select has a DISTINCT clause, and not add unnecessary unique-ifying
processing on top of it. So in 7.5, writing a DISTINCT clause will
amount to forcing a particular query plan, which might or might not be
the best thing but hopefully won't be too terrible. But in 7.4 it has
nothing to recommend it ...


Can't the DISTINCT be dropped if there isn't a LIMIT clause?
Similarly UNION, INTERSECTION and EXCEPT could also also be changed
to the ALL forms if there isn't a LIMIT.

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Nov 12 '05 #6
Hi Tom,
I've upgraded to 7.4.1. It seems to be working fine - haven't encountered
any problems yet.
The upgrade didn't lead to the desired outcome however. The query doesn't
run faster then under v7.3.2.
I have the following relations:
tgr=# \d t_fome -- 46 rows
Table "public.t_f ome"
Column | Type | Modifiers
-----------+--------------------------+-----------
fomeazon | integer | not null
fomenev | character varying(50) |
inuse | character(4) |
mecsazon | integer |
merotipus | character(10) |
szbevont | character(1) |
utmodido | timestamp with time zone |
visible | character(1) |
Indexes:
"t_fome_pke y" primary key, btree (fomeazon)
"idx_t_fome_fom eazon" btree (fomeazon)
"idx_t_fome_inu se" btree (inuse)
"idx_t_fome_low er_inuse" btree (lower((inuse): :text))
"idx_t_fome_mec sazon" btree (mecsazon)

tgr=# \d t_me30 -- 4518927 rows
Table "public.t_m e30"
Column | Type | Modifiers
--------------+--------------------------+-----------
fomeazon | integer |
mertido | character(16) |
ertektipus | character(10) |
hetnap | character(1) |
impulzusszam | double precision |
mertertek | double precision |
merttartam | integer |
utmodido | timestamp with time zone |
Indexes:
"idx_t_me30_ert ektipus" btree (ertektipus)
"idx_t_me30_fom eazon" btree (fomeazon)
"idx_t_me30_mer tido" btree (mertido)
"idx_t_me30_mer tido_fomeazon_e rtektipus" btree (mertido, fomeazon,
ertektipus)
"idx_t_me30_utm odido" btree (utmodido)

I found that:

1. explain select fomeazon from t_fome where lower(inuse) = 'igen'
QUERY PLAN
------------------------------------------------------
Seq Scan on t_fome (cost=0.00..1.8 0 rows=1 width=4)
Filter: (lower((inuse): :text) = 'igen'::text)

As the table has an index on lower((inuse):: text), I belive it should be
used for searching.
2. explain select mertido, fomeazon, ertektipus, mertertek
from t_me30 where fomeazon in (select fomeazon from t_fome where
lower(inuse) = 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order by mertido,
fomeazon, ertektipus;
QUERY PLAN
----------------------------------------------------------------------------
---------------
Sort (cost=128045.87 ..128045.93 rows=24 width=46)
Sort Key: t_me30.mertido, t_me30.fomeazon , t_me30.ertektip us
-> Hash IN Join (cost=1.81..128 045.32 rows=24 width=46)
Hash Cond: ("outer".fomeaz on = "inner".fomeazo n)
-> Seq Scan on t_me30 (cost=0.00..128 037.62 rows=1129 width=46)
Filter: ((mertido ~~ '2003-12-17%'::text) AND (ertektipus =
'+MW'::bpchar))
-> Hash (cost=1.80..1.8 0 rows=1 width=4)
-> Seq Scan on t_fome (cost=0.00..1.8 0 rows=1 width=4)
Filter: (lower((inuse): :text) = 'igen'::text)

In the first line of query plan we have a sort operation which is the most
expensive part of the plan. Having an index on (mertido, fomeazon,
ertektipus) key, shouldn't it be used to sort the result set? Like doesn't
use the index (mertido) either.

How could I make Postgres to use these indexes. Is there any other way to
make lower the costs on sort operations and as a result the query run time?

Thank you all,

-- Csaba Együd

-----Original Message-----
From: pg************* ****@postgresql .org
[mailto:pg****** ***********@pos tgresql.org]On Behalf Of Tom Lane
Sent: 2004. január 6. 21:04
To: cs*****@vnet.hu
Cc: Pg***********@P ostgresql.Org (E-mail)
Subject: Re: [GENERAL] Query performance question on a large table
=?iso-8859-2?Q?Egy=FCd_Csa ba?= <cs*****@vnet.h u> writes:
here is a sample query:
select mertido, fomeazon, ertektipus, mertertek from

t_me30 where fomeazon
in (select distinct fomeazon from t_fome where lower(inuse)

= 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order

by mertido,
fomeazon, ertektipus;

Ohh, I nearly forgot the config: Linux 7.1; Postgres 7.3.2;


The first thing you ought to do is move to PG 7.4. "foo IN
(SELECT ...)"
generally works a lot better under 7.4 than prior releases.
I'd suggest
dropping the "DISTINCT" when using 7.4, too.

regards, tom lane

---------------------------(end of
broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to
ma*******@postg resql.org

-- Incoming mail is certified Virus Free.
Checked by AVG Anti-Virus (http://www.grisoft.com).
Version: 7.0.209 / Virus Database: 261 - Release Date: 2004. 01. 02.

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Nov 12 '05 #7
=?iso-8859-2?Q?Egy=FCd_Csa ba?= <cs*****@vnet.h u> writes:
I found that: 1. explain select fomeazon from t_fome where lower(inuse) = 'igen'
QUERY PLAN
------------------------------------------------------
Seq Scan on t_fome (cost=0.00..1.8 0 rows=1 width=4)
Filter: (lower((inuse): :text) = 'igen'::text)
Sure looks like you have not VACUUM ANALYZED this table yet.
2. explain select mertido, fomeazon, ertektipus, mertertek
from t_me30 where fomeazon in (select fomeazon from t_fome where
lower(inuse) = 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order by mertido,
fomeazon, ertektipus;


Could we see EXPLAIN ANALYZE not just EXPLAIN output?

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Nov 12 '05 #8
Sorry, I just have found the thread concerning about index useage in
connection with like clause.
I created an index on mertido using
CREATE INDEX idx_t_me30_mert ido2 ON t_me30 USING btree (mertido
bpchar_pattern_ ops);
command and analyzed and the query plan now is:

tgr=# explain select mertido, fomeazon, ertektipus, mertertek from t_me30
where fomeazon in (select fomeazon from t_fome where lower(inuse) = 'igen')
and mertido like '2003-12-17%' and ertektipus i
n ('+MW') order by mertido, fomeazon, ertektipus;
QUERY PLAN
----------------------------------------------------------------------------
----------------------------
Sort (cost=7.84..7.8 5 rows=1 width=46)
Sort Key: t_me30.mertido, t_me30.fomeazon , t_me30.ertektip us
-> Nested Loop IN Join (cost=0.00..7.8 3 rows=1 width=46)
Join Filter: ("outer".fomeaz on = "inner".fomeazo n)
-> Index Scan using idx_t_me30_mert ido2 on t_me30
(cost=0.00..6.0 2 rows=1 width=46)
Index Cond: ((mertido ~>=~ '2003-12-17'::bpchar) AND (mertido
~<~ '2003-12-18'::bpchar))
Filter: ((mertido ~~ '2003-12-17%'::text) AND (ertektipus =
'+MW'::bpchar))
-> Seq Scan on t_fome (cost=0.00..1.8 0 rows=1 width=4)
Filter: (lower((inuse): :text) = 'igen'::text)

Thats it! Thank you very much!

-- Csaba
-----Original Message-----
From: pg************* ****@postgresql .org
[mailto:pg****** ***********@pos tgresql.org]On Behalf Of Együd Csaba
Sent: 2004. január 7. 20:17
To: 'Tom Lane'
Cc: 'P************@ Postgresql.Org (E-mail)'
Subject: Re: [GENERAL] Query performance question on a large table
Hi Tom,
I've upgraded to 7.4.1. It seems to be working fine - haven't
encountered
any problems yet.
The upgrade didn't lead to the desired outcome however. The
query doesn't
run faster then under v7.3.2.
I have the following relations:
tgr=# \d t_fome -- 46 rows
Table "public.t_f ome"
Column | Type | Modifiers
-----------+--------------------------+-----------
fomeazon | integer | not null
fomenev | character varying(50) |
inuse | character(4) |
mecsazon | integer |
merotipus | character(10) |
szbevont | character(1) |
utmodido | timestamp with time zone |
visible | character(1) |
Indexes:
"t_fome_pke y" primary key, btree (fomeazon)
"idx_t_fome_fom eazon" btree (fomeazon)
"idx_t_fome_inu se" btree (inuse)
"idx_t_fome_low er_inuse" btree (lower((inuse): :text))
"idx_t_fome_mec sazon" btree (mecsazon)

tgr=# \d t_me30 -- 4518927 rows
Table "public.t_m e30"
Column | Type | Modifiers
--------------+--------------------------+-----------
fomeazon | integer |
mertido | character(16) |
ertektipus | character(10) |
hetnap | character(1) |
impulzusszam | double precision |
mertertek | double precision |
merttartam | integer |
utmodido | timestamp with time zone |
Indexes:
"idx_t_me30_ert ektipus" btree (ertektipus)
"idx_t_me30_fom eazon" btree (fomeazon)
"idx_t_me30_mer tido" btree (mertido)
"idx_t_me30_mer tido_fomeazon_e rtektipus" btree (mertido, fomeazon,
ertektipus)
"idx_t_me30_utm odido" btree (utmodido)

I found that:

1. explain select fomeazon from t_fome where lower(inuse) = 'igen'
QUERY PLAN
------------------------------------------------------
Seq Scan on t_fome (cost=0.00..1.8 0 rows=1 width=4)
Filter: (lower((inuse): :text) = 'igen'::text)

As the table has an index on lower((inuse):: text), I belive
it should be
used for searching.
2. explain select mertido, fomeazon, ertektipus, mertertek
from t_me30 where fomeazon in (select fomeazon from t_fome where
lower(inuse) = 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order
by mertido,
fomeazon, ertektipus;
QUERY PLAN
--------------------------------------------------------------
--------------
---------------
Sort (cost=128045.87 ..128045.93 rows=24 width=46)
Sort Key: t_me30.mertido, t_me30.fomeazon , t_me30.ertektip us
-> Hash IN Join (cost=1.81..128 045.32 rows=24 width=46)
Hash Cond: ("outer".fomeaz on = "inner".fomeazo n)
-> Seq Scan on t_me30 (cost=0.00..128 037.62
rows=1129 width=46)
Filter: ((mertido ~~ '2003-12-17%'::text) AND
(ertektipus =
'+MW'::bpchar))
-> Hash (cost=1.80..1.8 0 rows=1 width=4)
-> Seq Scan on t_fome (cost=0.00..1.8 0
rows=1 width=4)
Filter: (lower((inuse): :text) = 'igen'::text)

In the first line of query plan we have a sort operation
which is the most
expensive part of the plan. Having an index on (mertido, fomeazon,
ertektipus) key, shouldn't it be used to sort the result set?
Like doesn't
use the index (mertido) either.

How could I make Postgres to use these indexes. Is there any
other way to
make lower the costs on sort operations and as a result the
query run time?

Thank you all,

-- Csaba Együd

-----Original Message-----
From: pg************* ****@postgresql .org
[mailto:pg****** ***********@pos tgresql.org]On Behalf Of Tom Lane
Sent: 2004. január 6. 21:04
To: cs*****@vnet.hu
Cc: Pg***********@P ostgresql.Org (E-mail)
Subject: Re: [GENERAL] Query performance question on a large table
=?iso-8859-2?Q?Egy=FCd_Csa ba?= <cs*****@vnet.h u> writes:
here is a sample query:
select mertido, fomeazon, ertektipus, mertertek from

t_me30 where fomeazon
in (select distinct fomeazon from t_fome where lower(inuse)

= 'igen') and
mertido like '2003-12-17%' and ertektipus in ('+MW') order

by mertido,
fomeazon, ertektipus;

Ohh, I nearly forgot the config: Linux 7.1; Postgres 7.3.2;


The first thing you ought to do is move to PG 7.4. "foo IN
(SELECT ...)"
generally works a lot better under 7.4 than prior releases.
I'd suggest
dropping the "DISTINCT" when using 7.4, too.

regards, tom lane

---------------------------(end of
broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to
ma*******@postg resql.org

-- Incoming mail is certified Virus Free.
Checked by AVG Anti-Virus (http://www.grisoft.com).
Version: 7.0.209 / Virus Database: 261 - Release Date: 2004. 01. 02.

---------------------------(end of
broadcast)---------------------------
TIP 8: explain analyze is your friend

-- Incoming mail is certified Virus Free.
Checked by AVG Anti-Virus (http://www.grisoft.com).
Version: 7.0.209 / Virus Database: 261 - Release Date: 2004. 01. 02.

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ma*******@postg resql.org

Nov 12 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
3051
by: Brian Oster | last post by:
After applying security patch MS03-031 (Sql server ver 8.00.818) a query that used to execute in under 2 seconds, now takes over 8 Minutes to complete. Any ideas on what the heck might be going on? I have tested this extensively and can say for certain that installing this hot fix is what has caused the performance problem. I just don't know why or how to fix it. Brian Oster
3
23624
by: Robert | last post by:
I am having performance issues on a SQL query in Access. My query is accessing and joining several tables (one very large one). The tables are linked ODBC. The client submits the query to the server, separated by several states. It appears the query is retrieving gigs of data from the table and processing the joins on the client. Is there away to perform more of the work on the server there by minimizing the amount of extraneous table...
14
9291
by: Bob | last post by:
Hi there, Need a little help with a certain query that's causing a lot of acid in my stomach... Have a table that stores sales measures for a given client. The sales measures are stored per year and there could be multiple sales measures every year per client. There is another field called last update date. If there are multiple sales measures then need to select the one that's been entered last based on this field. Also, if there
11
5403
by: Eugenio | last post by:
Excuse me in advance fo my little English. I've got this stored procedure **************************************************************************** ********** declare @Azienda as varchar(3), @Utente as varchar(20), @DataDa as datetime, @DataA as datetime, @AreaDa as varchar(3), @AreaA as varchar(3),
5
4487
by: Bernie | last post by:
Greetings, I have 3 servers all running SQL Server 2000 - 8.00.818. Lets call them parent, child1, and child 2. On parent, I create a view called item as follows: CREATE view Item as select * from child1.dbchild1.dbo.Item union all select * from child2.DBChild2.dbo.Item
7
10810
by: Bing Wu | last post by:
Hi Folks, I have a very large table containing 170 million rows of coordinats: CREATE TABLE "DB2ADMIN"."COORDINATE" ( "FID" INTEGER NOT NULL , "AID" INTEGER NOT NULL , "X" REAL NOT NULL , "Y" REAL NOT NULL , "Z" REAL NOT NULL )
15
5650
by: Rolan | last post by:
There must be a way to enhance the performance of a query, or find a plausible workaround, but I seem to be hitting a wall. I have tried a few tweaks, however, there has been no improvement. Simply, I'm including one calcualtion from a separate table/query. It sums the total units sold to date by ProductID number and is used in other select queries to perform various calculations. Perhaps there is an advantage in working with a maximum...
29
5508
by: wizofaus | last post by:
I previously posted about a problem where it seemed that changing the case of the word "BY" in a SELECT query was causing it to run much much faster. Now I've hit the same thing again, where basically almost any change I make to how the query is executed (so that it still performs the same function) causes the performance to jump from a dismal 7 or 8 seconds to instantaneous. It's a very simple query of the form: SELECT Min(MyValue)...
13
4598
by: atlaste | last post by:
Hi, I'm currently developing an application that uses a lot of computational power, disk access and memory caching (to be more exact: an information retrieval platform). In these kind of applications the last thing that remains is bare performance tuning. So for example, you can do an 'if then else' on a bit like a 'case/ switch', an 'if/then/else' and as a multiplication with a static buffer. Or, you can do sorting with an inline...
0
8868
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8741
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9388
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9090
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8062
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5996
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4504
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
2612
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2149
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.