<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial, helvetica, sans-serif;font-size:12pt"><DIV></DIV>
<DIV>Thanks, Larry, that make me feel a bit better.</DIV>
<DIV>&nbsp;</DIV>
<DIV>The suggestion is to keep a separate table of applicable nodes, generate a random number from the number of records, and get that record. Your explanation seems to indicate that one is simply&nbsp;spreading the "overhead" out over time - and probably increasing it in total, maybe. Given that the block can be refreshed on every page load,&nbsp;and a new node created&nbsp;relatively infrequently, I can also see that there may be some merit when the number of nodes gets fairly large. Maybe something like "<FONT face="Courier New, courier, monaco, monospace, sans-serif">SELECT&nbsp;n.* FROM {quotes_random} r INNER JOIN {node} n ON n.nid = r.nid WHERE r.row_num = 1 + RAND() * (SELECT MAX(row_num) FROM {quotes_random})</FONT>". (Sorry for the D6 version; it would take me a&nbsp;much longer time to construct in D7.) <BR></DIV>
<P><FONT color=#ff007f size=4 face="bookman old style, new york, times, serif"><EM><STRONG>Nancy</STRONG></EM></FONT></P>
<P>&nbsp;</P>
<P><FONT face="arial, helvetica, sans-serif">Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.</FONT></P>
<DIV><BR></DIV>
<DIV style="FONT-FAMILY: arial, helvetica, sans-serif; FONT-SIZE: 12pt"><BR><FONT size=2 face=Tahoma>
<DIV style="FONT-FAMILY: Courier New, monaco, monospace, sans-serif; FONT-SIZE: 10pt">
<HR SIZE=1>
</DIV>
<DIV style="FONT-FAMILY: Courier New, monaco, monospace, sans-serif; FONT-SIZE: 10pt"><B><SPAN style="FONT-WEIGHT: bold">From:</SPAN></B> Larry Garfield</DIV>
<DIV style="FONT-FAMILY: Courier New, monaco, monospace, sans-serif; FONT-SIZE: 10pt"></FONT><BR>I don't know that I've ever tried it with 12k nodes so I can't say from <BR>experience.<BR><BR>Randomization is a tricky subject.&nbsp; The common method, which Views uses as <BR>does the -&gt;orderRandom() method of DBTNG, boils down to adding a random number <BR>as a new column for each record, ordering by that, and then (in this case) <BR>discarding all but the first record.&nbsp; That involves a linear-growth creation <BR>for the new column (a fixed additional cost per record) and then an integer <BR>ordering.&nbsp; Assuming the sorting function in the SQL database is sane (which if <BR>it isn't you need a new database), that should be an n*log n algorithm.&nbsp; <BR>(That's as fast as a sorting algorithm can get.)</DIV></DIV></div></body></html>