No, based on the information you present, you should index the value. That's
what indexing is for and why it's configurable; to speed up searches based
on that attribute. I will say that it's possible that there's a better way
to do what you're doing, but based on the currently available information, I
can't think of anything helpful other than to index the attribute.
"Sorry, yes, I meant an attribute value is not unique. Eg we manage to get
two people with the same staff number - would this stop it indexing on staff
number?"
No, it won't stop indexing, but it will have to return more than one result
right? I've never heard of the indexing stopping, but in this case it would
be less effective because indexing should be used for unique values to
really be effective. However, that is not always the case as in some of the
other 22 fields that are indexed which can be unique or not by themselves.
When you search on an indexed field, you'd expect to get multiple hits for
this type of query.
You don't want to turn on indexing willy-nilly for all of your attributes.
There are costs associated often in DIT expansion and replication. However,
for 5000 user objects (that's what? One group worth?) the extra burden is
likely next to nothing. I'm not even convinced you'd notice a difference in
the day to day. Even if you have a lot of DC's and they're distributed,
indexing that attribute for 5000 objects isn't likely to be noticed in any
perceptible manner.
Your queries would get faster, but not likely be a tremendous amount.
Al
Post by Clive GeorgeSorry, yes, I meant an attribute value is not unique. Eg we manage to get
two people with the same staff number - would this stop it indexing on
staff number?
How bad is 1 and 2? The data in the attribute is a 5 character string, and
there are about 5000 users. The only change would be to index this
attribute.
There are currently 22 indexed attributes for a person - how much will one
extra hit performance?
As you may have guessed, I'm looking for ways to persuade our AD admins.
Or me, if it turns out that changing schemas in this way is not 'the done
thing'.
There were also hints that MSCE training said one should avoid adding
extra indexing, but no reasons for this have been put forward - anybody
know any?
cheers,
clive
Post by Al MulnickNot sure of the situation where they mean an attribute is not unique.
Maybe the value?
1) increased storage space to hold the global catalog information (if
it's not already in the GC)
2) increased overhead to process the index
3) not sure why else somebody wouldn't? Personal reasons?
Future administration should be unaffected. Performance is increased for
the searches if that's what you're doing. Machines would have to work
slightly harder as the index increases but that's normal behavior so I
doubt it would be much for one attribute to be indexed.
Does that help or are you looking for something else?
Post by Clive GeorgeI'm not concerned about the 'how' - I wouldn't be the one making the
change. I only mentioned searchFlags bit 0 to avoid confusion (I appear
to have failed slightly :-) ).
What I would like to know is 'why not'.
Reasons could include performance, ease of future administration.
Somebody's hinted that if an attribute isn't actually unique, the index
won't get used - is this true? Seems odd to me.
cheers,
clive
Post by Al MulnickAre you planning to programmatically make this change? Why not via
the schema admin?
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/ServerHelp/44cb16a2-7969-4e59-8c9b-5962604ff1fb.mspx
Setting it to 1 from it's current may or may not be the right answer.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adschema/adschema/a_searchflags.asp
To index, it must be at least 1 but could be a combination.
Not sure what exactly to tell you about this. If the internal AD admin
doesn't want to do it, I have to ask why before I can make a
suggestion. That person may have a very good reason.
Al
Post by Clive GeorgeWhat are the potential pitfalls of indexing eg extensionAttribute3 in
our AD schema? (it's used to hold employee number, and I'd like to
query by employee number, so indexing this would seem to be sensible).
Our AD administrator is not wanting to do such a thing, so I thought
I'd ask the general world whether this is normal or not.
(I'm assuming indexing is setting searchFlags bit 0 to 1 in the
schema. Also, this is straight AD, not ADAM.)
cheers,
clive