Indexing only null column values in Oracle

We have a table that can have tens or hundreds of millions of rows in it, and in this table there is a certain column. This column usually—typically—generally—has non-null hash values in it.

In unusual cases though, that column can be NULL. And the thing is, there are times when the interesting rows, the rows we want to gather together and do something with, are exactly the rows where that column is null.

Table scans to find the rows where the column is NULL are expensive, so naturally we want to index this column. But since non-null values in this column are a hash and we only ever care about the NULL values, we’d like to avoid the time and space overhead of indexing the non-null values. We’d like a partial index of only the rows where the column is NULL… Read the rest of this entry »

,

Leave a comment

Change default runlevel (target) on Fedora

I’m running on Fedora 20, and the graphical boot (Plymouth-something-something) sometimes waits a long time and then times out, which when it happens makes the computer take several minutes to boot. This doesn’t happen if I boot to “runlevel 3″ (now called multi-user.target) and then run startx from there.

You can change the default target to “runlevel 3″ like this:
systemctl set-default multi-user.target

Leave a comment

Easy peasy JPGs to PDF conversion

Our scanner at home is an old flatbed that scans to a .jpg file. When you have several pages that you need to scan and send to someone, a pile of JPGs isn’t very nice—you’d rather have one PDF.

If you’re running Linux (at home I’m currently running Fedora 20 – “Heisenbug”), this is easy peasy: with ImageMagick installed, just use the convert command:

convert 1.jpg 2.jpg 3.jpg 1-2-3.pdf

Leave a comment

Mumps-style “dotted do” notation example

FT                                      # A label (for jumping to)
  NEW X,MSG2
  I $$RDVALS^MISC22()=SUCCESS DO QUIT   # The second space between DO and QUIT is significant
  . S X="DO ACTN5^ACTNS"
  . X X                                 # The two Xs mean different things (Cache' is not a context-free language)
  . S MSG2=MSG_" succeeded."            # Expect MSG to float in from somewhere else
  E DO
  . S ERRMSG=INVALIDREADMSG
  . W 1/0

Leave a comment

Method signature joke

STDMETHODIMP CI3DBTranDataSet::GetReal(), man.

Leave a comment

How to have the bash prompt display the full current working directory

To display the full working directory at the bash prompt (Linux command line), edit /etc/bashrc and where the PS1 variable is set, change \W to \w .

I’m running Fedora 19.

Leave a comment

How to remote restart your Windows PC

You’re remoting in from home and some app goes haywire on your (Windows) work PC. You’ve already asked your co-worker to power cycle your PC but now the problem is happening again. You don’t want to keep bugging your co-worker and you don’t want to have to drive in to work. You could have enabled the Remote Registry service, but you really don’t want to do that. Are there any other options?

There is, and a pretty simple one. You can issue a shutdown command from another PC on your network. The trick is to establish a connection to your main PC with your username first. At a command prompt on the second PC then:

net use \\MyMainPC\IPC$ /user:mydomain\myuser *
shutdown -m \\MyMainPC -r

There are other options you can send to the shutdown command, but this gets us (re)started. I tested this on Windows 7.

Leave a comment

Follow

Get every new post delivered to your Inbox.